All this stuff about having to code from the ground up...isn't this the whole basis of system libraries? So that the routines don't have to be created each time a new app is created? This works great for apps, etc. with medium level languages. A bit trickier with assembly.
Take a look at the repulsive gfx app Fractal Pro (yes, that old turkey again). Aside from the fact that I am chunder-struck over the crashing bore that fractals and mandelbrot sets are, even more piss-poor is Fractal Pro's horrid interface. I always wondered why it didn't have the standarized Amiga GUI that all my other fav apps used. The standard menu system has always worked for me. Even the various Soundtracker programs suffered immensely because of their clunky interface (which MED, OctaMED, etc. rectified). A better example that everyone should be familiar with is AmigaBASIC. Try loading a file and look at the primitive file requester. Rather than coding that portion, using a pre-made requester library would have made loading files in AB a pleasure (even if the app itself should have been aborted in a back alley...)
I have never cared for MUI either and only have it installed on my Amiga because so many programs required it. It runs like a slug on my 030, but from what I have read it works fine with higher processors. This happens on a lot of programs on the PC and is simply a factor of computing, unfortunately. I will reserve judgement about MUI, despite my previous views, at least until I can check it out on a faster box.