Actually, is this an architectural question for this group at all, or is this a plain ole Linux device driver writer question, addressed in several
books and such, as the details will be up to the OS in question. (Hint, not everything is Linux...)
On most OSes, it's up to the platform to handle claiming and clearing at the CLIC/PLIC/alphabet soup level, not the individual drivers. I can't imagine a (sensible) world where that would be handled by the individual drivers. If you and I are sharing an interrrupt and you mark it claimed at the platform level, I may never get called or, at the very best, would only be called after the interrupt service train has unloaded and made another pass around the loop of everyone that may be using that interrupt. Also, since your driver should be portable between MIPS, Sparc, Alpha, and Pentium (it's running in a time machine set for 1992, you see...) you wouldn't want' the portable device driver code to know about the details of this level about the platform it's running on at all.
A search of [shared linux interrupts] turns up what looks like several believable answers to what I think is your question.
Good luck