BOL for SET QUOTED_IDENTIFIER has this sentence: "SET QUOTED_IDENTIFIER is set at parse time. Setting at parse time means that if the SET statement is present in the batch or stored procedure, it takes effect, regardless of whether code execution actually reaches that point; and the SET statement takes effect before any statements are executed."
That statement doesn't describe the effect when SET QUOTED_IDENTIFIER exists multiple times in the same batch.
The actual behavior indicates that the last value of the SET is what is sticky to the object(s) created even though the parsing of the text is based on the most recently 'executed' statement.
BOL link for QUOTED_IDENTIFIER