«Интерфейс делается уже после того, как готов функционал» - вот с этим не согласен, так как есть дизайнеры интерфейсов. И правильное проектирование идет даже не с кода, а с логотипа и названия, с планов развития и прибыльности и др. Код как раз может быть в самом низу и если что-то не выйдет, то и в дизайне скроют. А вот когда люди уже привыкли к вашей программе, то уже дизайнерам приходится подстраиваться под это, так как очень плохо потом менять кардинально все. С виндой думаю вы примеры знаете.
А так да, интерфейс должен быть удобен, но удобен для правшей, не значит для левшей, удобен для зрячих, не значит тоже самое, что удобен для слепых. На то и профессия дизайнера, что он многое должен учесть.
Значки хорошо, но когда много работаешь, то уже комбинации клавиш применяешь и подобное. Хорошо понять можно про удобство, если анализировать разные другие программы и как там это сделано, так как привыкший к одним комбинациям в одной программе, так же будет пытаться применить их и в вашей.