Why do some DOJO functions have underscore in front of the function name. Are this functions any different to the other functions?
Anything beginning with an underscore is not part of the public API.
If you know java or C#, think private, protected internal/package private
The Dojo team does a pretty good job maintaining backward compatibility on the public API, but there is no such guarantee with the non-public API. So if you write a custom widget which overrides a function that begins with an underscore, it could break on an upgrade.
http://dojotoolkit.org/reference-guide/1.9/developer/styleguide.html