A frequent problem in objects snaps is the inheritance of the Z value when snapping to a point. GstarCAD addresses this problem with OSNAPZ system variable. If set to 0, osnap uses the z-value of the snapped point.
If set to 1, it uses the x+y of the snapped point and the current value of the ELEVATION system variable. Also note that when creating lightweight polylines, the elevation of the first snap will determine the elevation. After that, any snap to other elevations will be ignored.