А почему из-за модульности должна страдать гибкость и производительность?
потому что модульность - это человеческое понятие. Для компьютера не существует модульности - для него это всё единицы и нули. Поэтому любая модульность, если она не предусмотрена языком программирования и увеличивает байткод - снижает производительность любой программы. И полную совместимость модулей невозможно предусмотреть - из-за этого будет снижаться гибкость.
Соответственно легче написать программу без модулей, чем с модулями.