Hi Edhy.I have worked with some treeviews so far, but never attempted to create a generic one like you are doing. It sounds good to me, but this doesn't realy mean a lot (:hehe.
Every treeview I have worked with I populated with specific BOs, so I too added the PKs to the node.Tag and usually a BO.field_name to the Node.Text. After that, I only took care of the NodeStateChanged and did whatever was necessary when the node.StateImageIndex was Checked or Unchecked.