FWIW, rather than defining separate variables for each retrieved property, you can use a single mapcar expression to return the desired sublist:
(defun cogo_list_coor ( / i l o s )
(if (setq s (ssget '((0 . "AECC_COGO_POINT"))))
(repeat (setq i (sslength s))
(setq i (1- i)
o (vlax-ename->vla-object (ssname s i))
l (cons (mapcar '(lambda ( p ) (vlax-get o p)) '(number easting northing elevation)) l)
)
)
)
l
)