1) Correct. Process definitions are unique per tenant.
2) Sorry, not possible. Process definitions are tenant-specific.
3) No, the engine doesn't really care. It's just data in the database. The only thing that might need tweaking is the Process definition cache size.
4) No, that's custom code. Typically, tenants do not share process definitions .. or at least that's not how it is implemented currently.
5) That would need a serious amount of new code, cause once you start with tenancy, it is applied everywhere. Im thinking there might be workarounds with a custom Process Definition Cache … but I'm not sure of the implications that would have.