т.е. классы BlaBlaUtil для размешения нескольких функций это не сложности?
по мне top level подходят в 95% случаев, для остальных обычные object (если нужен контекст в имени функций)
если для использования этих функций не нужно создавать экземпляр, то не вижу сложностей. другой вопрос, что обычно эти классы рождены невозможностью расширить текущие классы под свои нужды, то есть extension в разном виде. как только появляются extension, всё становится намного лучше и необходимость в такого рода утилитарных классах практически пропадает. но появляется другая интересная проблема - как понять, что нужно заимпортить и где лежат нужные extension. эта проблема была и в классической java, но, начиная поиск класса со String ты находил Strings, StringUtil, StringUtils, StringTools, ... c extenion-методами всё стало несколько интересней, их можно написать в любых странных местах :)