For me the biggest issue has been trying to run my code from outside Squeak. This includes running Squeak headless to do something script-like and configuring a GUI application to run in a way that doesn't require the user to know they are running Squeak. Both of these are supposedly possible, but very difficult to get right.
1. The VM, it's weak, no multithreading, few IO options.
2. The restriction to image based smalltalk instead of the ability to run discreet programs...
Image based smalltalk is awesome but it makes it difficult to interface smalltalk code with external systems.