A GOTO can be used to go at an address(be it a subroutine or anything) but it can not 'call' a subroutine.Besides a lot of people i know prefer not to use GOTO(dont know why..dont see anything wrong with it).Never needed to use it yet. BRA does the trick.
Goto is only 'hated' in high level languages, in assembler it's perfectly fine - and in PIC assembler it's absolutely essential, you can't do anything without using it lots.
As a PASCAL programmer I'm particularly 'anti-goto', as it's really discouraged in PASCAL - in fact the only time I ever used it was in converting a Visual Basic program to Delphi, and I had to look up the syntax of how to use it, as I'd never previously done so.