I used to work at a place whose webserver was in TCL (AOLServer). Once I figured out some of the gotchas, I learned to really like TCL.
Like you mention, it's used as glue in lots of places, for instance in my Electrical Engineering classes to glue together VHDL/Verilog and program FGPAs.
They are beautiful, but they don't come one at a time. They make their thick webs _everywhere_ and in big groups. You can't escape them during spider season.
I work on a desktop budgeting application. I love that it's desktop-only (and so do the users)! It doesn't earn a living (yet), but it makes more than enough to cover expenses.
I've had great success using SQLite as both a desktop application file format and web server database. I'll mention just one thing I like about it in the desktop application realm: undo/redo is implemented entirely within SQLite using in-memory tables and triggers following this as a starting point: https://www.sqlite.org/undoredo.html
> but not so small that there are no useful libraries written...
Says the person responsible for a ton of really useful, well-done Nim libraries, such as this amazing Cairo/Skia-like library: https://github.com/treeform/pixie#readme
Nim has been such a fun language to use. I make a money-earning desktop application (Electron for the GUI and Nim for the core logic) and companion web service (fully Nim). It has been a pleasure using Nim to make these and other things.
It has never caused a problem for me. I didn't even know it was a "feature" until I'd used Nim for a year. In theory it seems like a terrible idea. In practice, it has never caused any problems.