The idea of the sub-profiles for different systems is the same as with the overall system profile, to save the user time and effort. Say the user wants to have multiple partitions set up in a particular way. When creating or editing a profile, the work of creating that partition list does not need to be done again, just choose it. By saving that previously-done work, we make it easier for the user to get what they want the next time. The installer becomes better for them each time they use it.
An installer with these features could be just another port or package, easy to add to a running system but not included in base. Or maybe the project to rebuild the loader with Lua will mean we get Lua in the base. Any language that supports features invented in the 30 years since
sh(1) has been static would be an improvement. Installers written in
sh(1) are hard to maintain, hard to modify, hard to even get correct when it takes so much code for basic things. I say this having written my own experimental installer in
sh(1). Also, the intentions of a normal FreeBSD install and an installer are kind of opposites. A normal FreeBSD install tries to be just the base system, while the installer itself should be free to use anything that makes the installation easier for the user (or installer author).
UCL might be fine for profiles, that question has not really come up yet. For now, it's nice just to get people thinking of the installer as an assistant to the user instead of a slightly-customizable script.
pc-sysinstall(8), the PC-BSD installer, is in the FreeBSD base system. Current versions support some of the things talked about here, like being able to save a configuration, or fetch one from a URL. The version in FreeBSD looks to be fairly old and might not support that yet. Also, from what I recall about the last time I installed PC-BSD, it did the walk-away design part correctly, too.
The OpenBSD guys were talking about this a bit, too. Their installer can also run from a configuration file. I'm not sure if I emphasized enough that, in my opinion, the really important parts are to let the user easily modify and re-use profiles. They might have their own take on that which does it in a different but better way.