Получил решение. Переходя от
plink -i dummy.ppk -L *:5678:localhost:1234 account@12.34.56.78
в
plink -i dummy.ppk -L 0.0.0.0:5678:localhost:1234 account@12.34.56.78
это работает, как ожидалось.
Разница была в следующем: первая команда Sysinternals TCPView показала, что plink.exe открывает соединение с локальным адресом 127.0.0.1. Со второй командой локальный адрес стал 0.0.0.0. Я предполагаю, что это говорит plink, чтобы принимать соединения от других хостов