Иногда, когда вы хотите оптимизировать метод настолько, насколько вы можете его использовать (не прибегая к сборке), «Self» можно (ab) использовать как «свободную» переменную - это может означать разницу между используя стек и используя регистры.
Конечно, содержимое стека, скорее всего, уже присутствует в кэше ЦП, поэтому доступ к нему должен быть быстрым, но регистры еще быстрее.
Как примечание: я до сих пор скучаю по тем дням, когда я программировал на Motorola 68000 Amiga и имел роскошь 16 данных и 16 регистров адресов ... Я не могу поверить, что мир решил пойти с ограничено 4 регистрами линейки процессоров 80x86!
И в качестве последнего замечания, я иногда выбираю Self, поскольку оптимизатор Delphi, ну, в общем-то, не оптимизирует , что на самом деле. (По крайней мере, это меркнет по сравнению с тем, что можно найти, например, в различных оптимизаторах LLVM.) ИМХО и, конечно же, YMMV.