Why is it important for checkpoints to contain well-formed blocks? In the source code of the standard client, checkpoints.cpp has this comment:

//
// What makes a good checkpoint block?
// + Is surrounded by blocks with reasonable timestamps
//   (no blocks before with a timestamp after, none after with
//    timestamp before)
// + Contains no strange transactions
//


Why should it matter? Presumably the client would have accepted it anyway if they were downloading it normally, and if you were to specify a later block, that would still force the client to download the strange block. I don't understand the point of this restriction.
There are two things :


Why are checkpoints needed in the first place,
Why do the checkpointed blocks need to adhere to the standards you are quoting (which is your question)


I don't think checkpoints are required at all or useful in any way, there has been some debate around this, the fact remains that checkpoints are still present in the Satoshi implementation.

I believe there is no specific reason why the checkpointed blocks must have "reasonable timestamps" or not contain "strange transactions". The only reason I can think of is to not confuse someone reviewing the checkpointed blocks. As you said, such a block would still be downloaded and properly validated. So I think it has more to do with cosmetics and clarity than with an actual technical constraint. 

(Also note that "strange transactions" doesn't really mean much, it does not seem to be defined as a transaction that passes the IsStandard check)