For labels, the codes crh-latn and nds-nl are lowercase ([[https://query.wikidata.org/#select%20%2a%20%7B%0A%20%20values%20%3Flang%20%7B%20%22crh-latn%22%20%22crh-Latn%22%20%22nds-nl%22%20%22nds-NL%22%20%7D%0A%20%20wd%3AQ5296%20rdfs%3Alabel%20%3Flabel%20filter%20%28lang%28%3Flabel%29%20%3D%20%3Flang%29%0A%7D|see this query]]). For sitelinks, they are written crh-Latn and nds-NL ([[https://query.wikidata.org/#select%20%2a%20%7B%0A%20%20values%20%3Flang%20%7B%20%22crh-latn%22%20%22crh-Latn%22%20%22nds-nl%22%20%22nds-NL%22%20%7D%0A%20%20%3Fsitelink%20schema%3Aabout%20wd%3AQ5296%20%3B%20schema%3AinLanguage%20%3Flang%20.%0A%7D|see this query]]).
Since language codes are case insensitive, they are both valid and equivalent, but I think we should be consistent, because that's what most users will expect (e.g. not one of the example queries use lcase() or ucase() when using lang() or schema:inLanguage - people just assume that a language code will always be capitalised the same way) and being inconsistent leads to unexpected behaviour (unexpected results when comparing labels with sitelinks is how I discovered that the capitalisation differs). I think only crh-latn and nds-nl are affected for sitelinks, so far less data would be affected by lowercasing those compared to changing the case used for labels/descriptions/aliases.
----
Review June 21, 2021: suggested update to [[https://gerrit.wikimedia.org/g/mediawiki/extensions/Wikibase/+/ccacae57f44bb5f4a85168116ccb3b076bb56560/repo/config/Wikibase.default.php#199|Wikibase.default.php#199 (canonicalLanguageCodes)]] (currently, there is "crh-Latn"):
'crh' => 'crh-latn',
'nds-NL' => 'nds-nl',