By the time you do an upload/check-in, you have already assigned a part number to the object, so that part of the OIR gets ignored.
Or does it flag an error as not meeting the OIR rule?
I think so. What is the objType value for the context and site, is it different?
If I apply a rule in 'site' level, shouldn't it also propagate to all the lower levels including all other context?
Also, my EPMDocument is currently on 'site' (attached image). When I try to create a new OIR there's no option to change the context from 'site' to a different one. Does this mean I have to create a new EPM Document for new context?
that is not the place to assign OIR's. I suspect that you should not be messing around with this.
Object types are created at site level you need to go to the correct place in utilities to assign your OIR. I do at context level to allow each context to have it's own rules. You can do at site level but that ripples through everything (unless you have other context rules).
Create OIRs at the org level or the Product/Library level.
Always create your own OIRs, copy of the site level ones, so PTC does not override your changes if you play with a site level OIR. Same applies to lifecycles, worklflows, etc.
I have created all of mine at the org level for now. I may change and create some context specific OIRs at a later date which would be at the Library level.