PostgreSQL autoincrement up to certain number then reset for sharding
As serial columns simply select a nextval from a sequence do they not?
  It's just an extra step of reseting a sequence once it reaches n


Not even an extra step because cycling is a built-in functionality of sequences, 
See CREATE SEQUENCE.

Example:

=&gt; create sequence s maxvalue 5 cycle;

=&gt; select nextval('s') from generate_series(1,7);
 nextval 
---------
       1
       2
       3
       4
       5
       1
       2