Ich würde sagen, der Weg über den Hook ist zu umständlich:
Die ursprüngliche Definition des Felds 'username' der Tabelle tl_member ist so:
PHP-Code:
$GLOBALS['TL_DCA']['tl_member']['fields']['username']['sql'] = "varchar(64) COLLATE utf8_bin NULL";
und "berücksichtigt" wegen COLLATE utf8_bin die Unterscheide zw. Groß- und Kleinschreibung.
Wenn Du das (in einer eigene Erweiterung oder der zentralen dcaconfig.php) so abänderst:
PHP-Code:
$GLOBALS['TL_DCA']['tl_member']['fields']['username']['sql'] = "varchar(64) COLLATE utf8_general_ci NULL";
und danach die Datenbank aktualisierst sollte alles erledigt sein. Nebewirkungen sind mir keine bekannt.