Hi Ian,
Display name has been included since the begining of mojoPortal, firt and last name were added much later and cannot be sure that they are populated for existing users though it can easily be added to the registration page and required for registration. In fact in recent versions it was changed in mojoProfile.config to be shown by default on the registration though it is not configured as required by default.
However, you can easily make it required in your site by copying and renaming the mojoProfile.config and configuring your site to use your custom version of it, then you can mark those properties as required for registration.
We cannot treat the first name and last name the same as display name. In many scenarios users may be willing to provide their real name but not want it shown to the public in the member list or other places. The display name allows them to show something else like a nick name.
However, I recognize that there are also scenarios where it would be desireable to show the real first and last name and it is currently possible, I've just created the article Member List Display Settings which should help you with that.
In the latest version the welcome message can also be configured from layout.master to show the first and last name if it is populated.
<portal:WelcomeMessage ID="WelcomeMessage" runat="server" UseFirstLast="true" RenderAsListItem="true" ListItemCss="firstnav" />
Hope that helps,
Joe