An excellent question. What you are touching on is a complicated, unsolved technical problem with real-time 3D graphics

.
The short answer is that transparency and depth testing generally don't work together.
If you're feeling brave, you can read about it here:
https://www.khronos.org/opengl/wiki/Tra ... cy_Sorting. But I'll try to explain it a bit more simply.
In almost all video programs (including Magic), the final frame is a result of all the composited layers. The compositing process renders the bottom layer first, then blends the next layer on top of that, and so on. The last thing drawn is the top layer. This is pretty standard behavior.
Consider this example:

- DesertLighthouse1.jpg (71.56 KiB) Viewed 7875 times
Without the DepthTest module enabled, the lighthouse image is drawn on the bottom due to it being connected to the DepthTest module on the bottom, even though it is Translated in front of the desert image (closer to you in the z dimension).
With the DepthTest enabled, the lighthouse is drawn on top:

- DesertLighthouse2.jpg (62.49 KiB) Viewed 7875 times
The DepthTest module's function is to "collect" everything that has been drawn up to that point, and get all the relative positions of things, and determine which is on top (closer to you). So it changes the draw order, kind of "overriding" Magic's connector order. Thus, the lighthouse is drawn last, even though its connector order would normally cause it to be drawn first (as the bottom layer of the final frame).
The problem is that, on all graphics cards, depth testing is a binary comparison (top-or-not), and it only deals with geometry (polygons), not textures. The power of graphics cards lies in their hardware-acceleration of drawing polygons, and for any point in space, polygons either exist or they don't -- there's no gray area. To the casual observer, it may simply look like there are two images in this scene, but the reality is that there are two rectangles (and actually, 4 triangles), which happen to be textured with images.
Now, consider this example:

- Transparency.jpg (56.03 KiB) Viewed 7875 times
I've added a Transparency module, so the lighthouse gets drawn with 50% transparency. But, the DepthTest module has determined that the lighthouse should be drawn on top because it is translated closer to you, and therefore your graphics card thinks the desert image is completely obscured. So the desert isn't drawn at all, and the lighthouse gets blended with nothing (since there's nothing else to be composited with in the final image).
It can be a bit tricky to get your head around it all, but the easy thing to remember is that you never want to have anything with partial transparency (such as your ChromaKey modules) connected to a DepthTest module. The DepthTest module simply won't take the transparency into account.
It is possible to have fancy algorithms that get around this problem, but as the page I linked to above says, "If you have enough translucent surfaces moving around in a sufficiently complex manner, you will find it very hard to avoid errors with acceptable realtime algorithms." This is exactly what's happening in your scene.