As far as I can see RFC9234 does not mandate handling a route leak with Treat-as-widthdraw. It just refers to leaking routes to be ineligible (for further use).
My understanding: a leaked route should be present in Adj-RIB-In, but not into Loc-RIB.
I do understand that Bird does not follow the traditional path of other BGP speakers and has no Adj-RIB-In/Out. In a multi-table route server setup Adj-RIB-In/Out is mimicked by the per-peer-table. In a single-table setup, the leaked route would go into the main table.
So the question is: Could you imagine another way (i.e. different from Treat-as-withdraw) of handling "ineligible" routes?