Why choose the longest chain before checking for double-spending? Can we make the following changes to the current POW protocol to better avoid double-spending:

a) For full/mining nodes that receive two chains, check if there are identical addresses that occur on both chains that perform double-spending. If there are any, ignore the chain that would result in the node doing a reorganization (reorg), choose the other chain;

b) If there is none, choose the longer chain;

c) For nodes that receive only one chain, accept it if it does not require a reorganization.

Wouldn't this be better in avoiding double-spending than the current protocol, i.e. accepting the longest chain blindly? Shouldn't we check the block contents from both chains before deciding which one to accept?
If there is a double spend attempt, there is no way for a node to know "which chain (transaction) actually came first and is legitimate". Some nodes may hear about the 'legit' chain first, some may hear about the double-spend chain first. 

So, if the rule states that nodes work to avoid reorgs in case of a double spend, then we would expect the network to split at the occurrence of a double spend. Consider: what happens if there is a double-spend attempt, and the first chain your node hears about is the one that is soon-to-be the shorter chain? You would be stuck on an orphan chain, while the rest of the network marches onward. This is obviously not good, as network consensus and reliability is important. 


  c) For nodes that receive only one chain, accept it if it does not require a reorganization.


If the node only receives one chain, then it will never require a reorg. Only a node that receives an alternative, longer chain will reorg.


  ..accepting the longest chain blindly? Shouldn't we check the block contents from both chains before deciding which one to accept?


I would not say chains are accepted blindly, acceptance requires the chain to be valid according to all of the network's rules. Your node will check the contents of new blocks, but as I mentioned above, there is no way to reliably distinguish a 'legit' transaction from a 'double spend' transaction, at a network-consensus level.