Currently in our UI's if you create a table or view and include this column in the sorting the UI will create a left join to the lookup table. This is required to create the proper sortation. Obviously a left join is often not preferred. It should be an inner join, otherwise the query will not use the index.
I understand that sometimes setting up this join as an inner is not possible, because if the join would return no value then the row itself would not be visible.
Therefor I think the following solution would be perfect:
If a column is not mandatory, the UI should always use left joins.
If a column is mandatory, the UI should always use inner joins. However in the SF model it is possible to still mark the column as “use left join on lookup”. This is required when the lookup itself is a view that sometimes might not return any record.
By changing this, the overall performance of all application will increase.