Rerunning the test suite is not something that dotest.py should be responsible for. This is another step towards making lit the driver and dotest the test framework.
I use -# for running single tests multiple times. This is useful particularly if you have a test that only fails sometimes, you can do:
$ lldb-dotest -p testname.py -d -#400
then attach lldb to the Python instance set some breakpoints, if that's appropriate and continue. Then when you get the bad path, you're sitting there in the debugger with the failure in front of you. Very convenient. I don't see a way to do this with the lit infrastructure at present.
It seems to me that this is independent of the project of making dotest not be a driver, since this has nothing to do with finding tests, or farming many tests out to multiple processes, it just says "I passed you the test to run but run it 400 times in series rather than one time." So I don't think this is at cross purposes to that project.
Until there's another way to do this task that's as convenient, it would be nice not to remove this option.