i would expect to get the first valid date that is in the 0th week (1.1.2018) from Date.strptime("00 2018", "%U %Y") even if the first day (sunday) of the 0th week is not existing / in the last year.
I do not think this is a bug. It is reasonable for Date.strptime to assume a value of 0/Sunday for :cwday/%u if :wnum0/%U is specified without %u. In every other case where you specify %U without %u, you get a Sunday. I don't think it would make sense to be inconsistent and return a non-Sunday date for week 0.
If you really want to handle this differently, use Date._strptime and handle the resulting hash specially: