Apparently recurring tasks should have the same companion **due** settings. For example:
$ task add "a daily recurring task" recur:daily due:eod
$ task add "a weekly recurring task" recur:weekly due:eow
$ task add "a monthly recurring task" recur:monthly due:eom
this way, the daily task can be marked done and won't show up again till next day
same for weekly/monthly etc tasks