Button, I respectfully hope that we can agree to disagree.
You left out a performance issue that (unfortunately) can rear its ugly head - a slow network. Not all of us are fortunate enough to have 1Gb Ethernet (or higher). We have what we have. Since data in a remotely shared backend is a legit design or implementation possibility and since the "traditional" method of Access FE + Access BE is still common, the size of the components DOES matter.
Adding an autonumber key to simplify the JOINs to a single field simplifies the SQL statements. For inexperienced programmers, it is paramount to apply the KISS principle, and I don't mean the leather-clad, heavy-make-up rock group, either. Keeping it as simple as possible (or practical or effective) is a sine qua non for success in ANY design project.
Yes, I do indeed refer to performance. Remember that for a split FE/BE with a remote BE, you have to transfer the tables to the machine running the FE because that is where the MSACCESS.EXE image is running. That is where the action is.
If someone is blessed with a good network and limited contention, OK. Performance isn't so much an issue. If the database isn't split into FE/BE, then again, OK - performance won't be a big issue. But Button, you answered this question as though you thought your environment is the only possible one to exist. If you are on a slow network or your computer is a laptop with a single CPU and your budget was tight so you bought a low-end system, then performance and database size creep in a bit sooner than you might like.
As to having auto-number adding to the JOINs to make things more complex? I think you are exaggerating slightly here. A JOIN of the compound (3-field) key would be REPLACED by (not added to) the JOIN of a synthetic auto-number key. Joining 1 field is always going to be easier to manage than joining 4 fields - which is what you seemed to be saying or at least implying.
The only time you need the complex compound field is when you're displaying on Form or Report, not when you are just updating details internally. And even when making the compound name available, you aren't JOINing on the compound field, you are just referencing it. You wouldn't JOIN on it anyway because that would be a JOIN on a key that wasn't your PK. Further, the more JOINs you add, the longer it takes in terms of design work and design validation. Real-world problems have deadlines. Whacking away at a compound key (when using a single synthetic key lets you design/implement faster) just seems wasteful of your most precious resource - time.
nosferatu26, if you take anything away from my sidebar discussion with Button Moon, it should be that even experienced programmers can have different viewpoints and they can both justify their choices. So it will always be when there are "many ways to skin a cat" as we say in the USA.
You might ask, "Is there a sure-fire way to know which viewpoint is wrong?" Why, of course there is. The method that doesn't work for you is clearly wrong. The one that works best for you is clearly right. Anything else is a shade of grey. Let's just hope you don't have 50 choices.