I can see the same behaviour as you do. After some investigation, I have realized that this is an intended one because of the fact that, with each combination of parameters it is created only one run (same run id), so it is only resuming the previous run although you use reinit=True. In terms of a workaround, I think there are two ways to solve this:
Average your metrics inside the optimize()/train_and_log() function in the same run instead of creating different runs.
Use the grid method instead of random and repeat some values (i.e. batch_size=[64,64,64,128,128,128]).
Please let me know if any of these would work for you or if you would like me to create a request for this feature (I was thinking something like a new argument in the agent like repeat=number_of_repetitions and average the results). If this is the case, I would really appreciate if you could give me some more details about your use-case and why this new feature would be useful for you. Thanks!