I saw this when it first came out and had meant to get back to it. It took me a while but I made it. 🙂
Rather than a slightly complex process to adjust the jobs we added a preliminary step that seems to do the trick. All of the jobs that might need to exist for any db in the AG exist on each node. The below code is in the first step of each:
If NOT EXISTS ( Select Primary_replica
Where Primary_replica = @@servername
Raiserror ( 'Replica %s is NOT Primary',16, -1, @@servername )
The step is set to "Quit the job reporting success" as its failure action.
It's been working like a charm for us since 2012.
Have a great day.