|There's more than one way to do things|
If you multiply an inteterminte form by zero, it's like Unknown OR True being True no matter what the left side was. Anything times zero is zero, so NotSure * 0 is certainly zero.
So... Log 0 times 0 is zero, whatever we decide about the Log of zero. antilog of 0 is 1. So figuring out by the normal numeric methods, we get a result of 1 for 0**0.
Ah, but what is an antilog? We're back to 1**0 there. So, it's a tautology, but consistent!
Consistancy is the real point.
Take a graph of y=42**x for all real values of x. When x is 0.1, you get one and a half. For 0.01, 1.04. For 0.0001, you get 1.0004. Likewise for negative values of x. If you graph it, you see a big V pointing right at (0,1). If you zoom in, you find that out of all the infinite (second level infinite, yet!) points on the curve, *one* is missing. Yuck.
Now calculus deals with that all the time. You can't do it directly, but you can sneak up on it, finding the "limit" as x approaches zero. That's one of the reasons calculus was invented. So, it's definitly true that the limit as x approaches 0 of 42**x is zero.
What does that buy us? Like in programming, special cases are a pain. If in real work you tacidly assume you mean the limit, the work becomes a lot easier, and you get the right (useful?) answer anyway. Like I pointed out at the top, this produces consistant results when used in larger systems. So for all intents, n**0 is defined to be 1.
Now, do the same thing varying n. Draw the family of curves, and 42**x gives a V. 18**x gives a V with a different angle. .00000001 gives a nice V, too. All the curves in the family point to (0,1). What happens when n hits zero? BOOM! Again, take the limit and you get n**0 is 1 as n approaches arbitrarily close to zero.