From the Intel 80386 Programmer's Reference Manual:
IRET is similar to RET except that IRET increments EIP
by an extra four bytes (because of the flags on the stack) and moves the
saved flags into the EFLAGS register.
I don't exactly get why IRET increments EIP. What I know is that before jumping to an ISR, EFLAGS is pushed (among other things); and it's popped off of the stack when an ISR finishes (and IRET is called). How is this relevant to EIP at all?
That's a typo in the manual and it should say "increments ESP". The i486 Microprocessor Programmer's Reference Manual has it fixed, see page 226.