Why so many homebrew package name with underscore
The underscores in the version numbers indicate Homebrew specific changes or revisions. It means the upstream software hasn't changed, just that the Homebrew formula has been revised in some way.

Taking node as an example, the current release version of Node.js is "0.10.33". However the Homebrew version number has been updated to "0.10.33_1" (in other words, revision 1 of 0.10.33) because the formula was updated to point to a newer version of npm (one of node's dependencies) as you can see in this commit. So it is still the same version of node, but the Homebrew package itself has a new revision.

Similar the luajit package is updated to 2.0.3_1 in this commit where the lua dependency is updated to a newer version. lua itself hasn't been changed, it is still version 2.0.3 but the Homebrew formula has been updated.

Long story short it's perfectly safe to update to releases with an underscore. They don't indicate beta releases.