I don't fully understand the message. We are not talking about a Function field, but about a Many2One field. A user X has added a record in the Many2One which user Y does not have access to. The current situation is that the rec_name of that record is shown to user Y, but user Y cannot open the record details because an UserError shows up. I think this is correct.
For example, you have a record rule on products. User X creates a new sale order and add sale lines to it. One sale line has a product which access is enforced with the record rule. Now user Y opens that sale order and can see the product rec_name on the sale line, but user Y cannot open the product record to see the details.
I don't fully understand the message. We are not talking about a Function field, but about a Many2One field. A user X has added a record in the Many2One which user Y does not have access to. The current situation is that the rec_name of that record is show to user Y, but user Y cannot open the record details because an UserError shows up. I think this is correct.
No this is not. If you do not have read access to a record, you can not
read any of its fields.
For example, you have a record rule on products. User X creates a new sale order and add sale lines to it. One sale line has a product which access is enforced with the record rule. Now user Y opens that sale order and can see the product rec_name on the sale line, but user Y cannot open the product record to see the details.