Goto is a very controversial programming statement. When discussing goto, some programmers talk about "spaghetti code" and think of BASIC, others answer with "performance" and think of C.
I'm one of the latter guys. My attitude to coding is, the coder should be able to decide what's the best way (in any means) to achieve the development goals.
Okay, there are only few good reasons to use the goto statement. Actually I can think of only one good reason: leaving a function at its end and place a generic cleanup there ("single point of exit").
Example:
Saying Joomla development is a trivial task would be a lie. You'll agree to that as soon as you recognize Joomla as a huge PHP Application Framework. And it of course always takes some time to get used to a framework like that. Incidentally that's the situation for all frameworks of this kind, whether it's Drupal, the Zend Framework or whatever software you like. So it's not just a Joomla property and no reason to choose another framework at all.