The AVR chip already has pin change interrupts which give a similar functionality
But I'm not sure how such interrupts are configured via the Arduino IDE and libraries.
Say 7 and 4 come in at the same time so you get an interrupt and handle 7. Then 7 goes away leaving 4 on the pins. BUT an OR gate will not change state so you don't get the second interrupt.
IO expanders like the MCP23017 will do this, 16 potential interrupts with latching.