I think the key is to realize the difference between acceptability and preferences. Each side has a set of accepted ciphersuites, and a preference order among those ciphersuites. Non-accepted ciphersuites aren't considered for preferences at all.
Due to the design of the TLS protocol, the client sends its set of accepted ciphersuites to the server. It sends this set as an ordered list, and the order indicates the client's preferences. The server never shows the client what it accepts or what its preferences is. It makes a selection, and tells the client what that selection is. That's why the server has final authority to select the ciphersuite. The server doesn't have complete authority though: it can't make the client use a ciphersuite that the client doesn't want.
From the client's perspective, the server doesn't have an acceptable set, or preferences. All the client knows is that the server chose one particular ciphersuite among the ones that the client offered.
The server needs to select a ciphersuite that's acceptable to both the client and the server. If there's some ciphersuite that the client accepts but the server doesn't, the server won't consider it at all. Likewise, if there's some ciphersuite that the server accepts but not the client, then the server can't select it (that would violate the protocol and the client would shut the connection down).
Any ciphersuite that's both in the client's preference list and in the server's preference list is by construction acceptable to both parties. Among the mutually-acceptable ciphersuites, the server has authority to decide which one to choose.
It could pick one randomly, or based on the phase of the moon, or it could take a hash of the concatenation of the two lists modulo the size of the mutually-acceptable set and use that as an index in the mutually-acceptable list sorted in reverse alphabetical order of the rot13 transform of the official ciphersuite names. Or it can make its choice in a saner way, and OpenSSL offers the two ways that actually make sense: amongst the mutually-acceptable set, pick either the one that the server prefers most, or the one that the client prefers most.