Not entirely sure if TestBlockValidity tests all types of block validity, but it looks like it nearly does, making this kinda easy? If it does, its generally quite useful to have a way to as Bitcoin Core if a block would be valid, ignoring its PoW, so having that be public would be nice.