hi again,
I have also found out, why creating an object with arguments, but of an unknown class, results in the next created canvas inheriting those arguments (remember `whoami' riddle?).
The remedy: a call to canvas_setargs() in m_class.c/new_anything() should not be made before open_via_path() call, but only after succesful return from that call. For example:
canvas_setargs(argc, argv);
binbuf_evalfile(gensym(nameptr), gensym(dirbuf));
or in a similar way.
K-ind-of