And now I saw Houdini had been considering White’s best move to be 29.Qc4 still showing a 6P advantage to Black after 29...Qc5 30.Qxc5 Bxc5 and this is why it believed Black had a such a large advantage…the R is pinned and lost. Of course that’s not the case because when you actually get to this position the engine realizes fairly quickly that 29.Re1 is correct and Black’s advantage is only about 1/4 Pawn.
The moral of the story is that when you are analyzing with an engine, especially completed games where you only allow it a few seconds per move, the suggested lines aren’t always good ones. Even letting it analyze each move for a minute or two may not be sufficient. This is why in order to correctly analyze games with any engine sufficient time and some human input are needed. The fact is that in the initial position 26.Nxd6 is probably the best move, but if one were relying solely on the engine output and not allowing sufficient time, it could have been rejected out of hand as soon as that 6P advantage to Black showed up on the screen.