On 08.05.2015 18:48, Ulrike Fischer wrote:
> Is this a bug? Or simply something one must remember when using
> c-type arguments?

interesting question. On the whole we have not burdened expl3 with a lot 
of checking to avoid it getting too slow, i.e., in case with very well 
defined rules it is up to the programmer not to violate them

finite recursion (especially those that end up in quarks executing are 
something we made usually an exception as they are pretty nasty.

as for the rule: "c" should not be misused to do an implicit "new" even 
though that obviously works for some data types (if you know the 
underlying coding). For the "prop" type that doesn't work as 
\c_empty_prop" is quite different from \relax

so perhaps it is worth thinking of adding to functions for types like 
that always a quick initial check to see that the variable is a prop or 
rather at least not simply generated as a name from "c"

of course it would be a test happening each and every time