Actually, edge direction is the highest priority for hierarchical layout. The algorithm violates that only if you explicitly tell it to do so (e.g. by choosing the BFS layerer or from sketch layout). The priority for compact groups is always lower than the priority for edge direction.
Please note, that the direction of an edge is determined at creation time and does not depend on the chosen arrows!
Please note also, that for graphs with cycles, there is no way for all edges to point in the same direction.
That said, there's always the possibility of a bug in the hierarchical layout that leads to wrong results. If you can upload a GraphML file and corresponding settings here, we could investigate and maybe clear up the issue.