When choosing the date January, 1977 for the US locale it shows ok.
When changing the locale to DE, the week number of January 1st is 54. Going back to December of 1976 it shows week number 53 which is correct.
We use standard Calendar object and its getMinimalDaysInFirstWeek method to get the value of minimum days for first week according to locale if it's not defined via attribute. And calendar returns 4 days in your case. And in the year you mention only two day in this week. So it count as last week of prev year and not as first week of new one.