PostgreSQL: websearch_to_tsquery precedence / predicate ordering
This is how PostgreSQL interprets your query:
SELECT websearch_to_tsquery('english', 'exp1 exp2 OR &quot;multi word expression&quot; -weak');

                     websearch_to_tsquery                     
--------------------------------------------------------------
 'exp1' &amp; 'exp2' | 'multi' &lt;-&gt; 'word' &lt;-&gt; 'express' &amp; !'weak'
(1 row)

Since &amp; ties stronger than |, your suspicion is correct.
I don't think that there is a simpler way to express what you want with websearch_to_tsquery than
exp1 exp2 -weak OR &quot;multi word expression&quot; -weak