Fix #2101 - Return to recurse=0 == no recursion behavior
Ticket #1469 introduced an incorrect change of behaviour where
recurse = 0 was considered as an infinite recursion, unlike
before.
This patch restores this behavior, and makes some test pass.
Signed-off-by: Brice Figureau <brice-puppet@daysofwonder.com>