!if 0n1 > 0 ; >= 3.0b0
работает, потому что более старые версии не понимают 0n1 и рассматривают его как 0, поэтому он просто становится 0 > 0
в более старых версиях.
NSIS v3.04 и более поздних версий заставляет NSIS_PACKEDVERSION быть несколько полезным значением, даже если никто не указывает версию при компиляции.
Чтобы обнаружить конкретную функцию, реализованную в .NSH, вы можете просто проверить, существует ли определение или макрос, нет необходимости выполнять проверку версии:
!include x64.nsh
!ifdef IsNativeMachineArchitecture
...
!else
...
!endif