I know in lot of the newer 3D packages, this sort of programming is really popular and fun. Blender the free 3D program has a very nice system, well actually 2 systems in a way. One for making textures, or making cool post render effects and the other for making games and using the physics engine.
Houdini is also all node based visual everything really. You have 3d views, but you can go into any node at anytime and branch off. Very powerful.
The thing with visual programming is analyzing as you do for oop. Do you abstract way way out and add lots of bloat but super flexibility to do unimaginable things, or do you abstract just enough out to make it more productive but less flexible overall? Visual programming has these kind of battles one has to think about when designing a system. I am not there, but it is a goal I would like to achieve sometime.
Unity 3D does something different. It is almost like developing with shader programs like ati's/amd's rendermonkey or nvidia's fx composer. When you declare a variable, the program creates automatically an input for that variable so artists without programming knowledge can make use of the code/shader. This makes programming lots of fun. As soon you save the source file you see the new controls in the properties for the object. It is just super cool.