I don't really see how definitions would change this, since AssetKeys are just an event log query. So, to answer your 3rd question, I believe that as long as they're pointing at the same dagster database, then queries should be ok. Which means that 1 & 2 work as well.
(disclaimer: we're still using repositories to run multiple code locations from the same deployment, but definitely have asset dependencies and sensors working between code locations)