I'm thinking of implementing this if I invent my own esolang later. I'm not sure how good it is for CJam.
But if we had 26 more variables, and some are the autoinitialized input, I think it also worths to have this. It is no longer a variable, though.
For example, if .P is detected in a block, then the top item in the stack is discarded before evaluating this block. And .P itself in this block will return that item. So:
{*.P+}
is the same as:
{@@*\+}
Similarly, .Q and .R can be for the 2nd and 3rd parameter. And .S, etc for the parameters of the parent block. There can be also operators moving the top items when the blocks are defined, as a replacement of the block + operator in GolfScript.
.P may worth a single character operator. There can also be e-operators for more general usages.
Related to #36. I also suggest preserving some variables for coroutines if those 26 variables will ever be implemented.