Bascom tut sich da leicht: Beim Kompilieren generiert er für jedes Argument für printbin einen Call auf die Printbin-Routine.
Also, in Wirklichkeit wird aus
Code:
PRINTBIN   arg1 ; arg2; arg3 
im Code 
PRINTBIN   arg1
PRINTBIN   arg2
PRINTBIN   arg3 
PRINT <CRLF>     ' (für den nicht angegebenen Strichpunkt)
Die Sache ist also nur über den Kompilier flexibel.

Um das nachzumachen, müsstest du eine Printbin-funktion stricken mit nur EINEM Argument und es dann eben so wie Bascom verwenden.

Um das zur LAUFZEIT flexibel zu machen, brauchst du einen CALL-Standard, der auch die Anzahl der Argument an die Funktion übergibt.
Erst dadurch kannst du auch nach der Funktion den Stack ordentlich zusammenräumen.

Ich würde raten, es lieber wie Bascom zu machen.