

0! = 1 isn’t an exception.
Factorial is one of the solutions of the recurrence relationship f(x+1) = x * f(x). If one states that f(1) = 1, then it only follows from the recurrence that f(0) = 1 too, and in fact f(x) is undefined for negative integers, as it is with any function that has the property.
It would be more of an exception to say f(0) != 1, since it explicitly denies the rule, and instead would need some special case so that its defined in 0.
It gets deeper. It’s also the same as the 0-k-vector, the 0-k-blade, the 0-multivector, the only number that is its own square besides 1, etc…