Is there a way to turn this "nannying" off?
While it may be a design flaw, it's not intentionally nannying you. The issue is that when it sees something that it thinks looks like a date, it converts it to its internal date storage format, which is a number representing the number of days since January 1, 1900. (Times are represented as fractions of a day.) You can see this by entering a date and then converting the format to "General".
So what happens is that Excel sees something that looks like a date and immediately converts it to a number. But then it's lost the format you entered. So it has to default to something, which it does.
On the other hand, it clearly remembers part of the format of your entry, as it remembers whether or not you've entered a year. So it seems like something that they could fix if they wanted to. All the pieces seem to be in place.
So this could be considered a bug, or a misfeature, or a deficiency, but it's not nannying.
</pedant>