it kind of depends on how you look at the function. Is it the mathematical factorial? (probably not) or the Dyalog APL factorial? (probably yes)
I suppose it would be very difficult for the interpreter — probably impossible in the general case — to return a DOMAIN ERROR for domain violations of the mathematical function and a LIMIT ERROR for violations of the *implemented* function. The interpreter would have to do (a lot of) symbolic function calculations before performing the numeric calculation, or perhaps *after* the numeric calculation fails. Either way, very costly and error prone. Is…