why verification of transaction after proof of work?
I'm not sure how exactly it was described in the whitepaper, but obviously every node checks new transactions for validity before adding them into their block template. i.e. between step 1 and step 2. As you stated, it would not make sense to waste energy on finding a proof-of-work without checking validity in beforehand.

However, each node needs to still check the validity of a block after it's been found. Otherwise they would be trusting the block author to have adhered to the rules. Why trust, when it's cheap to verify? ;)