I suppose there is always some way for a creative enough user to mess things up. So, you have an FE that checks - what? You put a new FE on the server and at the same time update a version number somewhere in the BE, and the FE check to see if they match? Also a good method.Yes, you do. If the user makes a mistake and opens Access and clicks on the last used database, the new FE will not be downloaded and the one in the local directory will be used. This wouldn't be terrible unless this was the day that the versions changed. Better safe than sorry.
The only problem I see with your monolithic solution is that if the user downloads a new version and copies it to work offline without opening it first so it can run the copy code, he ends up off site with no data. Otherwise, as long as the data transfer is automated, it should be fine.
My single-file solution has one key feature, and that is the name. For example, I have one in the field for a lichenologist, and hers is named Lichen.accdb - wildly imaginative, I know. When I send her a new, empty version, it is named LichenNew.accdb, and that is what she puts into the same folder and runs, as her first step. The code sees its own name and empty tables, so it asks her for the name and location of her current data, with default as Lichen.accdb and the current folder. All she needs to do is hit Enter. The current data is read into LichenNew.accdb, doing any necessary manipulations along the way. When finished, it spawns a VBScript and kills itself. The script watches for the LichenNew.laccdb file to disappear, a Database.accdb to appear and disappear again (the new version does a C & R on close after reading in the current data). When all that settles, it renames Lichen.accdb to (e.g.) Lichen_Archive_2024-05-29_10-49-37.accdb, renames LichenNew.accdb to Lichen.accdb, with pauses between each action to allow the Windows file system to catch its breath, then restarts the newly renamed Lichen.accdb, and finally, deletes itself. So, she always know that the app she runs, which contains her data, is named Lichen.accdb, and LichenNew.accdb exists only for the duration of the import, then vanishes on its own.
Yes, she could copy the new, empty database somewhere and be stuck, but there is a limit to just how much hand-holding I can do. These users are not computer experts, but they are not idiots - they are highly respected natural scientists, often world-class authorities in their fields. When I give them clear and concise instructions, I can enjoy a reasonable expectation that they will be able to follow them. And again, the single-file configuration vastly simplifies everything - they know that THIS file is where their database is, period. Even if I wanted to go to a split system, beyond any doubt, the first response from every one of them would be, "Why all this? I liked it better when there was only one thing. Can't you put it back the way it was?"