NaCl -- even the non-portable form -- doesn't require recompiling for different OS's. It only requires recompilation for different machine architecture (x86 vs. ARM.)
PNaCl removes the need to compile different x86 vs. ARM binaries for NaCl.
PNaCl removes the need to compile different x86 vs. ARM binaries for NaCl.
A more significant difference is, however, that NaCl is restricted to the Chrome web store, while PNaCl is available on the open web. You can have a PNaCl module your web app, on your website/domain today, and Chrome 31 (and later) will run it.