Some strange behaviour. Looks like 'rexploit' does not reload the exploit.rb sanity checking for unset PAYLOAD etc whilst 'rcheck' does:
msf exploit(clamav_milter_blackhole) > set PAYLOAD cmd/unix/reverse
PAYLOAD => cmd/unix/reverse
msf exploit(clamav_milter_blackhole) > unset PAYLOAD
Unsetting PAYLOAD...
msf exploit(clamav_milter_blackhole) > exploit
msf exploit(clamav_milter_blackhole) > exploit
msf exploit(clamav_milter_blackhole) > rexploit
msf exploit(clamav_milter_blackhole) > rcheck
[*] This exploit does not support check.
msf exploit(clamav_milter_blackhole) > exploit
[-] Exploit failed: A payload has not been selected.
msf exploit(clamav_milter_blackhole) > rexploit
msf exploit(clamav_milter_blackhole) > rcheck
[*] This exploit does not support check.
msf exploit(clamav_milter_blackhole) > rexploit
msf exploit(clamav_milter_blackhole) >
msf exploit(clamav_milter_blackhole) > exploit
msf exploit(clamav_milter_blackhole) > rcheck
[*] This exploit does not support check.
msf exploit(clamav_milter_blackhole) > exploit
[-] Exploit failed: A payload has not been selected.