Actually, even pre-NNUE Stockfish wouldn't be an entirely fair comparison, because all hand-coded pre-NNUE heuristics was tested using Fishtest [0][1] - a distributed testing framework with compute, donated by volunteers.
And I think that Fishtest is actually what made Stockfish the strongest, because no other engine's performance ever was evaluated on such scale before.
Stockfish was the first to use hard data instead of vibes, when selecting algorithms and heuristics.
So, even if we add a rule that NNUE is not allowed, because it was trained on modern GPUs that, obviously, didn't exist back in 1996, hand-coded heuristics would also take a ton of compute to develop.
Bitter lesson strikes again, even when you don't expect it.
[0] https://en.wikipedia.org/wiki/Stockfish_(chess)#Fishtest
[1] https://github.com/official-stockfish/fishtest/wiki