Wouldn't block withhold be fixed by not letting miners in pools know which block candidates are valid before the pool knows? (Note: I haven't read any other proposals for how to fix it, this may already be known)
As an example, by having the pool use the unique per-miner nonces sent to each miner for effective division of labor as a kind of seed / commitment value, where one in X block candidates will be valid, where X is the current ratio between partial PoW blocks sent as mining proofs and the full difficulty?
The computational work of the pool remains low (checking this isn't harder than the partial PoW validation already performed), they pool simply looks at which commitment value from the pool that the miner used, looks up the correct committed value and hashes that together with the partial PoW. If it hits the target, the block is valid.