According to MSDN, the static property DateTimeFormatInfo.InvariantInfo "gets the default read-only DateTimeFormatInfo object that is culture-independent (invariant)".
Yet the long date pattern is "dddd, dd MMMM yyyy", giving a format like Monday, 29 February 2016. This format is commonly used on the continent in western Europe.
The short date pattern however is "MM/dd/yyyy" which results in a format 02/29/2016. This format is commonly used in the USA.
Even worse, when trying to convert to sortable format "s", this FormatProvider will result in 02/29/2016 00:00:00, which is hardly sortable.
Is this inconsistent behaviour a bug, or is it a compromise to "culture-independant"?
Seems standard behavior to me. DateTimeFormatInfo.InvariantInfo means neither a neutral nor a specific culture but it generates a format which can be converted to any culture specific format. As you can see in source code it is English language based but not culture specific (en but not en-US). Also your observation:
The short date pattern however is "MM/dd/yyyy" which results in a format 02/29/2016. This format is commonly used in the USA.
Is not correct because en-US culture ToString("d") will give 2/29/2016 (no leading). Also the time is in AM or PM.