Should I go out of my way to force the framework to change everything to lower case?
No, that's not necessary. Windows operating systems are case insensitive, including their server OS's and framework applications. Linux/Unix operating systems are however case sensitive.
Internet-based applications (e.g., browsers) should normalize URL's, as covered in section 6 of RFC 3986:
One of the most common operations on URIs is simple comparison:
determining whether two URIs are equivalent without using the URIs to
access their respective resource(s). A comparison is performed every
time a response cache is accessed, a browser checks its history to
color a link, or an XML parser processes tags within a namespace.
Extensive normalization prior to comparison of URIs is often used by
spiders and indexing engines to prune a search space or to reduce
duplication of request actions and response storage.
Since you'll be using a Windows server no doubt, requested URLs and URIs will be returned to client applications just fine.
In regards to search engines, as stated in the RFC above, and in your Wikipedia link on URL Normalization:
Search engines employ URL normalization in order to assign importance
to web pages and to reduce indexing of duplicate pages.
And as sources like this report on the subject:
More recently, Google began to better understand that /page1.html and
/Page1.html were just two instances of the same content.
Why did Microsoft choose to design their framework like this if everybody is telling me to use lowercase?
It's compatible with their operating system, and technically not incorrect according to the RFC's. They also have their own way of doing things, which keeps webmasters guessing :-)