3 つのパラメータ形式の場合、is_called は true (真) もしくは false(偽) に設定されます。false (偽) に設定された場合、次の nextval が指定された正確な値を返し、シーケンスの進行は引き続く nextval から始まります。
setval()にて。3つめのパラメータの存在に気がついていなかった・・・。
たしかに、0は受け付けてくれないんだからこれがないと1から始められない。
=> SELECT setval('book_id_seq', 1, FALSE);
0にはリセットできない仕様だと勝手に思っていた自分が憎い。んなわけないだろ。