Ok, I think I've got it.
In case anyone else needs to do this:
http://www.qtforum.org/article/25345...tviewitem.html

Basically create a delegate inheriting QAbstractItemDelegate, with a reference to a widget which "looks" and "acts" like you want your nodes to do.
Override editorEvent in your delegate and pass the event to your widget, remembering to set it's data first and to adjust mouse position for the widget.

Then just use the sizeHint event to set data ( it will be called first every time your itemview needs something from your node) and render the widget to the painter in the paint event.

Presto, virtual itemview having only one "real" widget no matter how many nodes. Tested with 50k items, works beautifully.