In general it's fine to have an action on multiple context lists. For example, phone call actions show up on my @call, @home, and @work lists; I'll check the call list when I'm away from my desk or out-and-about, but I can also make calls at my desk and at home so consolidating calls makes it so I don't have to flip between lists.
But easiest way to implement this sort of sytem is not to replicate the action in separate lists but to define the action once, tag it appropriately, and then define smart lists that grab actions that meet some set of criteria. (Excessive detail on this approach located here.)
That said, the examples you provide don't make sense to me. @Phone sounds like a normal context list, but next actions does not. @phone is a type of next action list, a subset really, and I don't know why you'd ever need a list of all possible next actions divorced from the context in which you can complete them. The concept of context is what separates GTD from from a big to-do list.
So I could see defining a project and listing all the sub-actions within it (next and future actions) and then tagging the next actions appropriately so they show up in the right contexts. That way each action only has one entry and when it's done it's done.