For pages in the menu, the RealUrl is always Default.aspx?pageid=x where x is the id of the page from mp_Sites. No matter what the friendly url is we are always rewriting the url to the RealUrl, so the browser shows the friendly url but the page served is always the real url page.
There "should not" be rows in the mp_FriendlyUrls table with duplicate friendly url unless they have different site ids. This is not enforced by a unique contraint so I suppose its possble somehow that could happen. In that case the first one it finds will be the RealUrl used for the request. In other words it looks it up by the FriendlyUrl and uses the first match it finds.
I would be careful what you do in your custom code in accessing these tables as they may change in the future. Specifically, I plan in the future to add pageid to the mp_FriendlyUrls table and I also plan to change to using Guids for ids instead of integers. I will be leaving the integer id columns there to try and avoid backward compatibility issues but the core of mojoPortal will be using the new guids to look things up instead of the integers after this change is complete. I'm not sure how soon I will be doing that but the reason to use Guids instead of integers is to make it easier to combine data from different mojo sites into one. When using integers you get clashes because both sites have the same ids but with guids they are always unique so there is no clash when combining users or content from multiple mojo sites into one.
So the risk you run in writing code against these tables is that you will have problems upgrading in the future and may need to revisit that code.
Hope it helps,
Joe