Nothing's wrong... vlx is behaving just like lsp : If you add 2 (defun c:XXX1 ()) & (defun c:XXX2 ()) functions, when lisp loads it will always show as result last one (c:XXX2), for it assumes that last one defined c:XXX function is main function for executing routine... This is why it's usually one lisp - one defined c:XXX function, and also the name of the lisp is usually the same as XXX function, so that you'll know what to load if you need that XXX function... This your 1stVersion.vlx should be named tests.vlx, and in (defun c:tests ()), you should point that you can use (c:test1) by entering (prompt "\nType \"test1\" for first test"), and also that you can use (c:test2) by entering (prompt "\nType \"test2\" for second test")...
This is how should look your tests.lsp before compiling it in vlx :
(defun c:test1 ())
(defun c:test2 ())
(defun c:tests ()