So i guess the question is where does the knowledge of this limitation belong and i think you are right that it probably doesnt belong in the event class since that shouldn't know anything about the fact that the items being created are knp menu items.

So it belongs in ContentAwareFactory because this class extends a class in the Knp namespace so it already knows about the knp implementation details. 

Another question is should isSkipChildren going to cause a problem? What happens if isSkipNode is not true and isSkipChildren is for a Menu node? Does knp complain about a menu with no children?