According to the code, "checkpoint_timeout" should be set larger than "checkpoint_warning", otherwise the warnings will not be generated. The comments in function: CheckpointerMain() also tell such behavior, which is in line#473 in "src/backend/postmaster/checkpointer.c":
/*
* We will warn if (a) too soon since last checkpoint (whatever
* caused it) and (b) somebody set the CHECKPOINT_CAUSE_XLOG flag
* since the last checkpoint start. Note in particular that this
* implementation will not generate warnings caused by
* CheckPointTimeout < CheckPointWarning.
*/
I think this's should definitely specified in the documentation.