I totally agree when you say: "Smalltalk code feels organic and extensible, but it's not well congealed into something as distinct as a "program". The current computing world is a world of programs, not objects." That´s the real question here. Smalltalk isn´t a "programming language", its an object environmnent, where objects live and evolve, which HAS a programming language to specify method behavior. The programming language inside Smalltalk is irrelevant, and could easyli be changed (syntax) and Smalltalk would be the same.
In Smalltalk there are no programs, but object systems. And it´s GOOD, not bad. Here is when I disagree with you. But you are 100% right in commenting that the vast majority of today software developers are not ready for this, they WANT to see a program, and don´t understand that working with programs is working proceduraly, not object oriented. To truly work according to the object oriented paradigm you need an environment like Smalltalk. Today software development world isn´t ready for that.