Heh, well, I already wrote up my own thoughts on the issue last night, so here you go. The theme/graphical stuff is easy - let me know if you want a hand (I did most of the other stuff in the default theme).
Drag and drop:
There should be an 'output' UI control on every block (I guess something functionally like the current little square point) to drag a spline from one block to the other, as in crafter, realtime buttons, etc. Drag can occur from the 'output' control and connect up to other blocks. Upon dragging the spline, if the mouse is over a valid block to connect to, the block will highlight with a white border like what happens when dragging/docking panels. When the mouse is released over a valid panel, a context-sensitive popup menu appears, containing the available relationships that can be created between the two blocks.
For example, dragging...
Object block -> Scene block
Link Object to Scene
Mesh (or other obData) block -> Object block:
Link obData to object
Ipo block -> Object block:
Link Ipo to object
Material block -> Object block
Link material to object
Material block -> Mesh block:
Link material to mesh
Texture block -> Material block:
Add texture in the next available texture slot
Texture block -> Lamp block:
Add texture in the next available texture slot
Image Block -> Mesh block:
Use image as a UV texture, if there are UV co-ords
Image Block -> Material block:
Add an image texture in the next available texture slot
Object block -> Object block:
Parent object to object (destination object becomes the parent of the source object)
-----
Then a list of the available constraints
...
If the mouse pointer is over a spline, it should highlight, and allow you to 'pick up' the spline again by dragging it to a different block. When the spline is highlighted it can be erased (removing the relationship) by pressing delete or X. A method like in crafter would be cool, too - use a mouse gesture that cuts (intersects) the spline to remove the link.
Dragging and dropping should be used when creating relationships between datablocks. Other actions that manipulate the data rather than creating relationships, like copying attributes and joining objects, can be done through the standard menus.
Previews:
Ton is already starting a big project to re-do the preview rendering code, so perhaps it would be a good idea to wait until he's done (or at least mention to him to take possible usage in the OOPS into consideration) before thinking about things like previews. Thumbnails especially of materials, textures, images would be very useful though.
Misc:
A feature I'd love to see would be a viewing mode that positions the datablocks spatially, like you're looking through a blender view. i.e. like you're looking from a top view in the 3D View, the datablocks are positioned in the 2d OOPS window using their 3D X and Y co-ordinates. This would make it much easier to determine what object block is what, particularly if one hasn't been vigilant in naming everything

It would also help to create a nice conceptual link between the abstract (OOPS) and the 'concrete' (3D View), helping people to understand the system.
There's a couple of other things that would be useful (posted this to the ML, but may as well mention it here too) that we can
borrow from Shake 
One is a button to activate the selected object, another is a button to view the current object in any open 3D Views (like View Selected (NumPad .) in 3D View). These buttons would only appear on selected blocks.