When installing the same Odoo app for multiple databases (tenants), say Sales App, does this mean Odoo will load the same App multiple times in memory, or the App will be loaded once in memory and shared across tenants/DBs?
Odoo loads the app in a worker (assuming you are using workers) so the app is loaded once per worker. A worker can handle multiple databases if configured. But if you have multiple workers the app might get loaded in each worker as requests are reaching the different workers.
Some part of the memory consumtion of odoo is the ORM caches and those are per database per worker (and some per user) so that part of the App will be in memory multiple times per worker as you have multiple databases.
Odoo - Apps in-memory footprint for multiple databases