If you don't use the core functions (attachInterrupt, detachInterrupt) you can provide your own interrupt service routine. That makes the two techniques interchangeable in terms of speed and size. But you have to go "low level". But you can copy-and-paste the code from the core so it isn't too painful.