Right now, if you have an opportunity changed trigger begin a workflow, and use the Create/Update opportunity action, the workflow will not reliably modify the relevant triggering opportunity if the attached contact has multiple opportunities. It will often only modify the most recently created opportunity.
An alternative solution would be to create an automation step allowing us to update opportunities by their ID. You can do this via the API but it's annoying to rely on outside apps for this.