Indeed this has been discussed for a long time. Sometimes it’s called “headers first mining” or “SPV mining” and it’s a cause of empty blocks being mined. (When you do this you can’t have any txs in your block because if anything in your block conflicts with the block you haven’t validated yet, your block will be invalid). You are however taking a risk on the incoming block being valid and may generate orphans if it is invalid.
Braidpool will solve this in a unique way: by using our committed mempool, block templates are deterministic and already known to all Braidpool nodes. Often we will have pre-computed the template for the incoming block and validation is as fast as comparing the Merkle root. When we can’t do that it’s because we’re missing parent shares (beads) of the incoming block. But that validation is still much faster because we only need to validate ~5 txs, not the entire block. Our share relay is also a lot faster than Bitcoin because shares are small and we use UDP/QUIC to avoid a round trip. Every Braidpool node can generate the corresponding block and feed it to Bitcoin once it sees the share.
Another optimization we may implement is to precompute the template for a second block, so if the block we expect comes in as a Bitcoin block, we can instantly switch to the second template, full of transactions, maximizing miner profit. This will matter more in a high fee rate environment, and of course it only works for blocks mined by Braidpool. For blocks mined by others we’re in the same situation as you describe. But, it’s safe for 100% of miners to be on Braidpool. The 51% attack still exists but it’s transferred to Braidpool itself.