解決後ではありますが、ちょっと遠回りかつ不完全な方法を載せておきます。
#defineを利用して省略時に既定値を代入する方法です。
#module
#deffunc _my_cmd str p1
mes "my_cmdの第1引数は " + p1
return
#defcfunc _my_func int p1
if ( p1 == -1 ) : return "my_funcの第1引数は 省略されました"
return "my_funcの第1引数は " + p1
#global
#define my_cmd( %1 = "省略されました" ) _my_cmd %1
#define ctype my_func( %1 = -1 ) _my_func( %1 )
my_cmd "ああああ"
mes my_func( 10 )
my_cmd
mes my_func()
「my_cmd "省略されました"」と「my_cmd」、「my_func( -1 )」と「my_func()」の見分けはつきませんが、場合によっては充分ではないでしょうか。