Ooh endless space, I have that!.

I'll try to ask your questions the best I can.
* If all the widgets/panels are on at the same time, it will run slowly. Especially if many of them are moving around.
* UITexture can set its mainTexture property at run time, so you can load and unload that as much as you want.
* I can't say much about this, because I don't know all the details. We had some troubles in one game with excessive garbage collections, but if you don't move around stuff inside the panels (move the panel instead) you don't re-create the meshes.
* Dynamic creation is relatively easy. I tend to use prefabs that I instantiate and add to the hierarchy, but you can add widgets dynamically too - you just have some more stuff to setup in code.
* What do you mean by controls?
* I wouldn't say the learning curve is all that high - you have to understand how widgets are drawn and then it's relatively easy to do advanced stuff.
Unity has freetype directly in it for its dynamic fonts, but NGUI does not support that officially.. yet. I don't know the time table for supporting it, but as far as I know it will be in the next release.