Marzio De Biasi mentioned this paper in this answer, and that paper's claim in part 5 would appear to resolve my question. However, there seems to be a significant gap in the proof.
Even though one may be able to figure out what the gadgets on the border of the known whitespace component are, that doesn't obviously help to figure out what the rest of the whitespace components are.
How can one "reason through wires to uncover all whitespace components" when the wires go through other components (such as crossovers)?