IMHO it is a good choice. You shouldn't have variables around that are different only on one cased character, or because one is snake_case and the other is camelCase. It also avoids the contamination of your code when using for example a C library in snake_case while your library uses camelCase. And finally, you can refactor a library in snake_case to camelCase without breaking dependent code.
The first character is actually not considered for case insensitivity, although it was in the past. :) And case insensitivity itself comes to Nim from Pascal.
The underscore thing gets me more than the case insensitivity, FWIW. We have tools for case insensitive greps, but underscore normalizing ones are rare.
nimgrep
One of the best features of the language IMO, no more style guides, do whatever you want.
By this logic, C++ is the same as C, C# is a syntax error and PHP should be named $PHP :D