Other than having a parameter passed between aliases, it would be difficult. If the alias were always called with the $1 parm being set to $calc(1+$1), the top level alias being called without a $1 parameter would be level 0. Each time the aliases see a value as $1, it's the parent's level incremented by +1. If you need the top level to be 1, then have it call the alias like $iif($1,$calc(1+$1),1)
You can search the forum for $calias to find requests for identifiers that would inform info about each level, including which line they were called from, which script, the name of the alias, whether it was local or not, etc.
$calias would be a big help with debugging scripts, because sometimes it turns out to be a problem caused by a local alias which doesn't show up when checking $isalias(name) from the editbox, or happens only when called from certain scripts or from certain lines.