ну если серьезно - не нравится ему простыня, да и все. вот придумал способ логический типа, как можно разделять это дело.. в entity тока get\set ну и все на этом, больше ничего
goto considered harmful а не зло. С goto можно оч красиво делать всякие таблицы перехода состояний и т.д. Особенно удобно когда таблица переходов компилится из какого-нибудь DSL.
проблема goto в том что она создает нелинейные переходы в коде. Вот ты открываешь функцию и можешь ее читать сверху вниз понимая как вещи будут во времени выполняться. Добавляешь goto и тебе приходится уже прыгать. Если ты с условными джампами в ассемблере работал то думаю понимаешь о каких крайностях речь идет.
Но универсальных вещей нет и goto иногда полезен.
Как это все соотносится с трейтами думай сам) аналогий там достаточно