Can another extension access memory in use or previously used by another extension?
@Noitdart covered this - yes.
Can another extension modify the code of another (eg, on disk)?
Again @Noitdart covered this but in case it's not clear, it would be possible to modify the code of another addon without requiring a restart. I.e. no disk is required to modify the code because the other addon has access to "executable" (interpretable) memory. By the same token, a malicious addon can modify any part of Firefox that it chooses to, either at run-time or through on-disk modifications to critical files.
The main mitigation of this risk (assuming you're not going to inspect all the add-on's code yourself) is that in answer to @georgie, there is a vetting process before an addon is allowed onto the official add-ons website.
Further security improvements are likely soon when Mozilla begin requiring all add-ons to be digitally signed before Firefox will load them. That's not going to help against a targeted attack but would give Mozilla an easy way to block execution of malicious add-ons/developers once a few unlucky people have discovered malicious behaviour in an add-on.
I don't think there is a risk of on-the-wire replacement of an add-on's code when it comes from Mozilla because they should be using TLS for all of that but I've not personally inspected their delivery system code. Again, the use of digital signatures will help protect against attacks relating to the malicious modification of an add-ons code during remote storage or delivery.
The other questions are a little less well defined but in addition to @Noitdart's explanation of add-on code execution scope some of the information below might be helpful.