You're mixing number of scenarios. To simplify, you have three scenarios:
IP routing interface to IP routing interface (no MPLS, no labels of any kind); router will do lookup in the FIB to find best path and forward IP packet to the next-hop; with current generation FPGAs/ASICs it's done in a very efficient manner, with FIB being structure that's usually hierarchical and very fast to look up.
IP routing interface to MPLS enabled interface or vice versa; here You'll do additional lookup to check if label imposition or deposition is needed;
Pure MPLS to MPLS switching - you're looking at incoming label and based on it, You're swapping the label to different label.
Router will decide on input what kind of packet it receives based on Ethertype - with IPv4, IPv6 and MPLS all having distinct values. As for destination - the destination IP in FIB will contain instruction which label to push to the packet before forwarding.
On surface, (3) is fastest, because you can search single label space quite efficiently in one lookup. For RIB/FIB you're usually dealing with hierarchy/tree, so it usually requires multiple lookups (with a lot of work during last 10-20 years on the construction and optimization of such search trees).
Only in theory however - current generation FPGAs/ASICs are capable of doing multiple lookups at the same time, and what's even more important - are doing it anyway. Why? They need to check for various services assigned to the packet/FEC - like QoS, filtering and so on.