They do, on a per-session basis - but it's an optional feature (that's supported by ~100% of all imap server implementations).
Using UIDs is opt-in, by prefixing `UID ` in front of some commands. There are indeed extensions that add more `UID ` commands to the protocol. I've implemented IMAP clients and never used sequence numbers at all.