@J12t regarding customization of UX:

IMO the right way to do it is to use templates (HTML or XML or whatever) to fully separate the design from the coding. So a UX theme/skin is comprised of a set of templates, a CSS file, and any graphics used by the theme. That way, third-party designers can create and share their own themes with other users, without having to code JS etc. Perhaps an individual user could also edit whichever theme they use. These themes could be far more diverse than just colors and styling; they could implement entirely different layouts and UX.

Note that third-party themes would absolutely need to be checked for security-- disallow embedded JS, links to external sites, etc. But that wouldn't be hard to automate.