Are blocks validated just before they are stored to memory, upon receipt from an RPC submit call, or at some other time? Can you point to the place in code where this validation process begins? Is this process starting point the same for transactions?
I think you are talking about the consensus rules and when they are enforced...
To get the whole picture I would suggest to read about this topic in the book "Mastering Bitcoin" by Andreas Antonopoulos.
Transactions are validated before they enter the mempool (see AcceptToMemoryPoolWorker(), and when they are submitted as a block.