Функции – это основа, базовый, но самый низкий уровень дизайна. Выше находится надежность. Когда функции работают. Еще выше – удобство. Помимо наличия функций, хорошо, когда ими удобно пользоваться. В определенном продукте функций может быть много, но перегруженность функционалом его портит. Им неудобно пользоваться, хочется проще.