Porque os aliases não são suportados na cláusula WHERE da mesma consulta. Então, em vez disso, escreva sua consulta como:
SELECT instmax
FROM
(SELECT instmax ,rownum r
FROM
( SELECT instmax FROM pswlinstmax ORDER BY instmax DESC NULLS LAST
)
) WHERE r = 2;