Generally I am quite happy with this approach, but I am not wild about the cost/benefit of writing tools in Smalltalk. I've spent a lot of energy on treading water and trying to keep things working while the environment is being rewritten underneath my feet.
I have also found that Smalltalk works best when data is imported into the Smalltalk heap, and represented by a dedicated model classes, and also represented by dedicated view objects (Bloc.) That's a damned lot of classes to write and the whole image can grind to a halt if I reasonably want to inspect millions of objects. This makes me miss simpler and more scalable data structures like R data frames.
Going forward I plan to take a more perl-inspired "there's more than one way to do it" approach and complement the Smalltalk code with e.g. R, Lua, etc. I expect to spend more time writing code generators (a la SWIG) rather than hand-crafting everything in Pharo.