Так же плохой для многих стиль - goto, break и continue. А многим коллегам ума не хватает даже использовать free /release и глобальные переменные, для них созданы всякие диезы с явами. И дальше что? Подстраиваться под всех, не используя возможности полноценного языка?
Application.ProcessMessages надо просто использовать с осторожностью. Таймеры отключать, за нажатиями на закрытие форм и пр. следить. Если есть какое-то долгое вычисление, которое не предсказуемо через какое время закончится, а таблицу уже начали обновлять, то милое дело запустить его в другом потоке, параллельно в GUI проигрывая анимашку. Другие варианты реализаций - это очень сложно, и интерфейс получится не отзывчивым.
Splash с прогрессом надо делать только так, если максимальной скорости загрузки хотим. Вообще много областей применений есть у Application.ProcessMessages. Надо помнить об основных нюансах, иначе будут проблемы.