Common design wisdom says that similar looking things should behave in similar ways. Yet every kitchen you walk into is designed with dozens of cabinets in every imaginable configuration. Every door is unlabeled, there is little to no consistency.
If software was designed like a kitchen you would have beautiful granite toolbars but none of your icons would be labeled and every application would be work completely different.
Are kitchens an example of form over function? Most people would say no. In fact kitchens tend to be very efficient, perhaps in-part due to the fact that you have to learn where everything lives.
Perhaps in some cases it's appropriate to have ease of learning take a back seat to long-term use? If you use it every day you learn where things are and how things work. Text interfaces like DOS and mainframe systems may be an example of this. It takes much longer to learn but once you have learned the software you can do things quicker and more efficiently then with a GUI.
If you're designing for a poweruser some features should have the efficiency of a kitchen while others need the simplicity of a toaster.