It is indeed by design. A sequence is just another object in the database that is separate from the table. It is really just what it says – a way for the database to generate an arithmetic sequence of numbers. It can be linked to a table, and is very often used to generate ID values automatically, but that is not the only thing it can be used for. (Note that this is different from the way some other databases handle AutoFields, such as MySQL's AUTO_INCREMENT
flag. AUTO_INCREMENT
can only be used for the ID field, while a sequence is more general. Yeah, and other databases still will completely ignore any values you specify for the ID field, unless you explicitly ask the database not to ignore the value beforehand – hello, MS SQL, I'm talking about you.)
Whenever you need to import existing data into your database, including auto-ID values, you have to make sure to update the sequences associated to all relevant tables afterwards. There is no magic that would do this automatically on every INSERT statement, at least not by default. (I imagine you could achieve something to that effect using a trigger, but I've never tried anything like that.)
By the way, the PostgreSQL wiki contains a very useful recipe to fix all sequences in a database, which I didn't see referenced in the question you linked (at least not at a quick glance).