There is certainly some truth to what you say. Threading is... just not (afaik it's a sort of green-threads thing) and UI is, as you point out, a crapshoot. However... ;)
If I'm going to write code for my own amusement, I want to work in Smalltalk and a Smalltalk environment. Ever since I first encountered it in the early 1980s, it's been my environment of choice. IMHO there's still no other programming environment that approaches the flexibility, liveness, debuggability, white-boxness of Smalltalk. To paraphrase Guy Steele, "All languages will evolve until they become Smalltalk". (Steele said something of the sort about Lisp.) That said, and jokes aside...
Where Smalltalk beats every other language environment I've ever worked with or seen is at exploratory programming: Programming where you don't quite understand the problem, the domain and/or the solution space. It's more a tool for thinking about problems and how to solve them than something for a fixed, final answer. I suggest, further, that a very great deal of software development is exploratory in nature, so using a Smalltalk is a win, at least until you've understood everything in sufficient depth to "just implement a solution". At that point go to something with better runtime performance, deployability, etc. by all means. Caveat being that sometimes (quite often, really) the exploration never, ever reaches a conclusive terminus, so you may want to stick with a Smalltalk.
tl;dr: Use Smalltalk to explore and understand, and then finally to deliver an executable, test-driven specification.