Actually, it has to do with avoiding undue filling of the hash table.
The snag with
is that it isn't expandable. With eTeX, you can use
\ifcsname instead. If it is a control sequence, and not name, you are testing, you can use
\ifdefined instead. But Heiko creates platform-independent packages.
You can think also of etoolbox packages's definition of
The catoptions package defines this as (using a pseudoname here):
\let is not expandable anyway. This leaves
#2 undefined if
#2 was originally undefined.