Si If 12345 then revenait à dire If True Then, alors if 12345 then produirait le même résultat que if 12345 = true then, or ce n'est pas le cas. C'est donc bien que l'évaluation se fait sur FAUX/PAS FAUX et pas sur FAUX/VRAI.
Je maintiens donc que dire [...]true c'est toutes valeur <>0[...] est une erreur, à tout le moins conceptuelle, même si j'admets que dans beaucoup de cas, le résultat revient au même en terme d'exécution de code. Sauf True et -1, toute valeur différente de 0 est NOT FALSE et pas TRUE. Et cela va bien au delà d'un simple distinguo.