Since the, as I call them, spacer blocks have no ordering there is no orphan problem for these blocks.
You need some mechanism to merge chains, in order for the whole thing to work properly. If you have 4 fast blocks between 2 full blocks, then you need some way to maintain ordering (between the slow blocks).
A -> a, b, c, d -> B
Looking at B, you can't tell if there were 4 fast blocks.
There would need to be a fast chain, with (at least) 2 inputs.
If b and c happened together, then the result is that d must merge the 2 chains. It has 2 parents, rather than just 1.
A -> a -> (b, c) => d -> B
It should be allowed to merge "around" a full block. The objective is just to allow PoW to be merged into a tree more efficiently.
+-------------------+
| |
V |
A -> a -> b -> d -> B
|
+--> c
B is has a "slow" link back to A.
The work that went into c is potentially wasted, but it could be merged back in.
+-------------------+
| |
V |
A -> a -> b -> d -> B -> e -> f
| ^
| |
+--> c -------------+
Someone looking at f can trace back the entire tree starting at f. Since c and e would be backwards links (and included in the header), c (and e) must have been created before f.
This allows all orphans to be merged back in, and so prevents wasting of PoW.