Extracting week from date seems to give incorrect value at the start of the year
I think I actually have an answer to this (typically mere minutes after asking my question), I was being severly thrown off by other extract() functionality.

2016-01-03 was a sunday. select extract(dow from '2016-01-03'::date) returns 0.

I was assuming that because extracting the day-of-week of a Sunday returns 0, then extract would consider weeks to start from Sunday, when in fact it considers weeks to start from Monday, as evidenced by this:

with
    __steps as(
        select unnest(array['2016-01-03', '2016-01-04']::date[]) as step_date
    )
select
    extract(week from step_date) as week,
    extract(dow from step_date) as dow,
    to_char(step_date, 'Day') as dow_name
from
    __steps
order by
    step_date asc


Returning

week    dow     dow_name
----    ---     --------
53      0       Sunday   
1       1       Monday