I actually don't find this to be the case.
You don't have an action that exists in a vacuum like this. I'd likely have agendas list for them anyway, or, I'm processing and reviewing often enough that you just know why you want to meet, the action has been generated somehow but you're talking as if I'd just come across "meet colleague" in my system and then decide to do it, which I wouldn't. Plus your action would be fully clarified and contain all the information required to do the action in the moment. By the logic of the example, if the action is is 'meet with Bob', knowing the project 'expand marketing department' actually gives you no more information on the action, either.
I'd actually say 3 would be the best practice because you've completed the thinking before acting on it. "phone bob" is not a fully clarified action, and it would repulse me regardless of what project it belongs to.
I can't say there aren't benefits of having your actions dynamically available via both context and project, but my point is that there's no need to know which project they belong to in the first place.
What I meant by this is that I tried using tool-specific features that didn't work for me, and taught me that the tool is not going to make my life easier, and that I can get very bogged down with tweaking and playing with a tool instead of doing work.
I don't any longer and I don't want to explore what a tool can do. Plus, a tool, especially a digital one, can break down, go obsolete, be unavailable. I can always fully clarify my thinking regardless of the tool.
I don't link NAs in any way to their project and it's made my life much easier; because in a way the project doesn't matter, it's just a placeholder for an outcome my next actions will move me toward. As long as my thinking is complete, I'm processing daily and doing a thorough weekly review, I have trust in the system.