Both sides can usefully implement remembering. The protocol allows the client to say either "I've no idea what my address is, give me any free one" or "I had this particular address last time, is it still available?". In the first case, the server will probably remember what address it last gave that MAC, and hand it back again. In the second case, it's up to the server what to do, but it's at least reasonable that it'll confirm the suggested address if it's available, whether or not it matches the last one it handed out to that MAC.

If the client were Linux, I'd suggest setting up an IP alias of the interface, which would be guaranteed to get a new address, then downing the non-aliased version -- but I've no idea whether Windows has those same features.

Peter