Ah, sorry, it seems I was wrong about the C locale. I just cannot make out how it counts weeks. Comments in usr.bin/ncal/calendar.c suggest that it uses ISO definition, except when exactly 3 days of the first week are in the preceding year -- in this case it would use the locale value. Still, I get strange results with en_US.UTF-8, e.g:
$ LC_ALL=en_US.UTF-8 ncal -wd 2011-01 January 2011 Su 2 9 16 23 30 Mo 3 10 17 24 31 Tu 4 11 18 25 We 5 12 19 26 Th 6 13 20 27 Fr 7 14 21 28 Sa 1 8 15 22 29 1 2 3 4 5 6