The concepts of programming, process management, and data persistence are combined together into one entity, rather than being separated into operational layers that depend on each other, but which segregate their code bases, and expose little of themselves at the layer that users can see. There’s really no separation between what’s persisted, and what’s running, what’s design time, and what’s run-time, and between what’s a command line, and what’s executable code. This throws people off.
Conquering that discomfort for me involved understanding Smalltalk’s history and legacy, which is an interesting area of study, understanding that Smalltalk is like an operating system (not just a programming language), and then understanding what Alan Kay’s model of objects was when he designed Smalltalk. All of that takes quite a bit of contemplation. I say that because I’ve heard from many Smalltalk programmers, some of whom had used it for years, but didn’t understand one or two of the qualities I just mentioned.