I have the feeling RHOST should be updated even if last_rhost_opt isn't set. My explanation:

1) I don't have RHOST set (is nil)

```
msf exploit(ms08_067_netapi) > show options

Module options (exploit/windows/smb/ms08_067_netapi):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOST                     yes       The target address
   RPORT    445              yes       Set the SMB service port
   SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)


Exploit target:

   Id  Name
   --  ----
   0   Automatic Targeting
```

2) I run check against a range of hosts:

```
msf exploit(ms08_067_netapi) > check 192.168.172.1-2

[-] Connection failed: Rex::ConnectionRefused: The connection was refused by the remote host (192.168.172.1:445).
[-] 192.168.172.1:445 - Check failed: The state could not be determined.
[-] Connection failed: Rex::ConnectionTimeout: The connection timed out (192.168.172.2:445).
[-] 192.168.172.2:445 - Check failed: The state could not be determined.
```

3) I run show options again, RHOST is set to the last host, which on my opinion is unexpected behaviour 

```
msf exploit(ms08_067_netapi) > show options

Module options (exploit/windows/smb/ms08_067_netapi):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOST    192.168.172.2    yes       The target address
   RPORT    445              yes       Set the SMB service port
   SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)


Exploit target:

   Id  Name
   --  ----
   0   Automatic Targeting
```

thoughts?