If I am not completely off (and I easily might be, given that I haven't touched a referential join for the last 2 years before your question), the actual ref. join optimization (leaving out the access to the one join partner) is only done in the analytic view.
And that even though you define it in the attribute view.
For the inner join you're right and on my rev. 94 is does exactly the correct thing: for every match it returns one result row.
No idea what runs wrong on your system.
- Lars