While I don't typically adhere to the "one NA per project" rule, I do try (where appropriate) to keep my lists to one NA per project/context pairing. I've found that if I have multiple next actions for a project in a given context, I tend to spend too much time thinking about which one I should do rather than just picking one and doing it.
I'm helped in this regard by NoteStudio, which contains all of my GTD system save for Hard Landscape items. (These would go in NS as well, if I could set alarms for them.) Anyway, I've implemented GTD with NoteStudio using the "backlinks" approach shown in this movie. Because of how NoteStudio implements the backlinks, I can list something like this:
And only the first action in each context will show up in the corresponding list. When I complete task A, I remove it from the project page and then task B automagically appears on the @Computer list for that project.[@Computer] Complete task A
[@Call] Jane to confirm priorities
[@Email] Bob a status report
[@Computer] Complete task B
[@Computer] Complete task C
I think the point made earlier in this thread is a good one, though: we can share techniques and ideas and thoughts and suggestions, but there's no one-size-fits-all implementation of GTD that works for everyone. For example, the hierarchical model used by the MLO/ShadowPlan/Bonsai folks totally paralyzes me, but it works well for some. That's why GTD focuses on the process, not the tools.