There should be two modes: owner, for testing how would the object work after it is transferred and non-owner, for testing how would it work for everybody else.
This is how I'd like it to work when this mode is enabled:
- In owner testing mode, when you interact with the object, llDetectedKey(0) == llGetOwner(), but llGetOwner() != llGetCreator().
- In non-owner testing mode, llDetectedKey(0) != llGetOwner().
- llDetectedKey, llGetOwner and similar functions return a key that's not your usual one.
- The key returned should point to an existent account, created explicitly for the purpose, so that dataserver functions can be tested correctly.
- Permissions apply to you as if you weren't the creator, with the exception of the testing mode flag.
- To prevent confusion, the permission testing flag is automatically cleared on transfer.
I believe this would greatly reduce confusion over how permissions work, and reduce the need to ask friends or use an alt to do proper testing.