like i said i don’t have the answer, and i’m interested in that too.
i think the only way to know is to try it out. (while you wait for someone who do knows to show up, but i find it unlikely and untrustworthy by my experience).
set up a case, and run some tests.
force the gc a few times. if they don’t get unloaded, then they don’t.
go with that solution for some time and add some logs in case they get unloaded and keep an eye on it.
tangential, but if you allow me to share my opinion.
i’ve found really helpful to try to restrict myself to the things i need in the moment, and don’t try to code for things i don’t need right now.
it might seem counter intuitive, but it actually proved to be extremely efficient.
even considering sometimes you need to do some refactoring.
it does not means not thinking about the best way or try to future proof it, but only without going out of your way.
i used to do it the other way, and a few years ago started doing this way, and it proved to be much better.
but, ymmv. just sharing my experience.