Mouse directives behave strangely in nested AngularJS environment

I was trying to implement a nested tree structure in AngularJS. It consists of nodes which all get managed by the same controller type. You can find an example here:

My problem is, that everytime a child node gets deleted and its parent's "children" array gets modified, all parents lose their ng-mouseenter and ng-mouseleave behaviors.

Has anyone an idea what to do about that? Have I missed something?

Use $browser.defer to emit $childDeleted event.
Set current element css to display: none; and force execute ng-mouseleave.

Example here:

Actually, it's a bug of browser javascript.

JavaScript MouseOver/Out event inconsist.

Pure js example here