When a node downloads the genesis and all blocks, does it verify all past transactions, or just the blocks (eg check the nonce/hash relation, thereby assuming the containing transactions must be right?)
New full nodes verify both blocks and transactions within those blocks. New SPV clients verify only block headers.
Bitcoin Core avoids checking signatures on blocks before the most recent checkpoint. Checking signatures is one of the most time-consuming parts of checking a block. (As of writing, the last checkpoint was on April 2014, 2.5 years ago.) This can be disabled by setting the option