Reading a PCF8575 on an Interrupt

Is there a better way?

No, not to my knowledge.

This works, but is definitly not an ideal way, as it will lead top timing problems soon.

Explain why! Usually this doesn't pose problems if you structure your code correctly and avoid any delay() calls.