Yes, but all this happens in rs_entity.cpp and this is low level abstract data code. It can't know about widgets and such higher level objects. And on this level, the layers tree structure and layer types (except construction) does not exists actually.
The general solution is to move the layer tree model on the same abstract level as rs_entity, but such changes are pretty heavy to be done.
On the other hand, if we want RS_Entity to operate with tree items, LC_LayerTreeModel is the lower level that even exists.
The only other solution is to handle the layer list and write some local list-to-tree conversion with string parsing layer list names. Which is wrong IMHO.
I hope I am explaining at least partially clear - I am not a programmer and my terminology might be not correct. :)
Anyway, all this story with the layers just proves my rule #2:
"In the software design, every list dreams to become a tree."