As noted in #32243 (comment), the early return inside MerkleComputation when leaves.size() == 0 was only exercised by fuzz tests.
The existing merkle_test_empty_block calls BlockMerkleRoot, which uses ComputeMerkleRoot, but does not exercise the TransactionMerklePath → ComputeMerklePath → MerkleComputation code path.
Coverage before adding test: <img width="2459" height="66" alt="before" src="https://github.com/user-attachments/assets/ca94015a-d7c2-4281-ac60-13b22f177b67" />
Coverage after adding test: <img width="2459" height="66" alt="after" src="https://github.com/user-attachments/assets/b1d4e1bb-af72-46ab-8898-f18db39dd2fb" />