With standard Commodore ROM BASIC, you could POKE a small machine program into a buffer (in the olden times it would have been the second tape buffer). This could do the bank switch and then call your 'real' subroutine.
The Commander X16 BASIC could also support a special SYS command with an extra parameter for the bank number, e.g. SYS 4563,32.
When I read your first post and looked up the source, I also was puzzled by the irq.s files in kernal/cbm and in monitor. The 6502 IRQ vectors are at the end of the memory (and that better be ROM, because they need to be there during boot). So I looked in vectors.s and found 'puls'.
You are right, these routines do not handle the interrupt properly. That code looks like a 'red herring' to me hat probably needs to be cleaned up.
Today I looked up a PET BASIC4 ROM listing and found the IRQ handler I vaguely remembered. (The CBM4032 at our school had the first computer keyboard I ever touched, back in 1981). Here is a link for reference: http://www.zimmers.net/anonftp/pub/cbm/src/pet/pet_rom4_disassembly.txt