I don't think they are documented at all, unless that has changed quite recently. However one big difference, and the main reason to use the ns_* functions instead of ?currency is that the NetSuite functions will use the currency defined format AND currency symbol, whereas ?currency use the Java environment locale's currency symbol and formatting, which actually may be completely different from the transaction currency.