user134811: It is said that a BOLT12 offer does hide the final destination, and therefore protects privacy of receiver.
However, I just generated an offer, decoded it, and in the value node_id, it had my node's public key without the first byte prefix, which is sufficient to have myself traced. Is there something that I haven't understood correctly?

user138198: 
Using BOLT 12 offer encodes the data necessary to reach a node to request an invoice to make a payment, either a node_id, or a blinded path (the last few hops in an onion route, pre-computed and encrypted) to that node using onion messages.

See here: https://thebitcoinmanual.com/articles/lightning-offers-bolt12/
I guess the answer is that you have those two options and you only get the privacy advantage if the blinded path feature is used.

134811: <p>It is said that a BOLT12 offer does hide the final destination, and therefore protects privacy of receiver.</p>
<p>However, I just generated an offer, decoded it, and in the value node_id, it had my node's public key without the first byte prefix, which is sufficient to have myself traced. Is there something that I haven't understood correctly?</p>
 138198: <blockquote>
<p>Using BOLT 12 offer encodes the data necessary to reach a node to request an invoice to make a payment, either a node_id, or a blinded path (the last few hops in an onion route, pre-computed and encrypted) to that node using onion messages.</p>
</blockquote>
<p>See here: <a href="https://thebitcoinmanual.com/articles/lightning-offers-bolt12/" rel="nofollow noreferrer">https://thebitcoinmanual.com/articles/lightning-offers-bolt12/</a></p>
<p>I guess the answer is that you have those two options and you only get the privacy advantage if the blinded path feature is used.</p>
