why N-Gons can subdivide some times and some times no?
Going around the cube this way:

You have a continuous face loop, regardless of its ngon status, because the connecting faces just have one edge between them.

If we &quot;unwrapped&quot; the shape in the direction you're cutting it would look like this (I've only shown three sides)

If we went the other direction it would look something like this, with a couple extra verts:

And this is no longer a continuous face loop.  The loop cut operation will stop when it can no longer find a definite way to travel down the next face.
Looking at all the edges this cut could decide to go to:

I would say as human onlookers it's pretty clear where it should go, but programmatically (for the general case) it's probably a hard problem to solve.  The operation just stops when it can't find the next face in the loop.