When trying to put inverted text on the copper layer, you would think that the “knockout” feature is made for that. But instead it makes a copper box around the text and then removes the copper from that box – but not the PCB – so the text AND the box are printed in copper, making it invisible.
The logical behaviour should be to NOT put a box around it if it’s on one of the copper layers, and instead just subtract the copper from the text.
(Even better would be to have copper “restrict” layers, but that would be way to easy and convenient, ha ha.)
That this feature is called “Knockout” instead of “Invert” (which is what it’s doing on the text layers) suggests that it was originally intended to work this way but that idea got lost along the way.