I was not aware of that problem about hierarchy mapping using NHibernate. However, perhaps you already know if you're reporting this issue, here's how it should be done:
<class name="ICategory" table="Categories">
<id name="ID" column="IdCategory">
<generator class="identity">
</id>
<property name="Name"/>
<component name="Parent" class="ICategory"> <!-- class attribute is normally optional -->
<!-- Here, I would have some test to do to determine whether we have to list the properties -->
<!-- I would say no and this would makes sense to me, but without having tested it, I can't confirm. -->
</component>
<union-subclass="Category">
...
</union-subclass>
</class>
If you're Category object class doesn't provide anymore properties than your interface ICategory, you may put all of the properties within the parent class element, then only declare your subsequent union-subclass object within it.
You may want to consult the NHibernate Reference Documentation, Chapter 8 - Inheritence mapping for further details on the subject. As for component mapping, you want to check Chapter 7 - Component Mapping.
As for EF4, I can't help as I have never already worked with it. Sorry.