Rob,first of all, thank you for fast and detailed answer.
We use attribute "Repeat" in next cases:
1. Bug reproducing (multi-threaded) issue.
To reproduce a bug, developer implements test. Sometimes (when the bug related to multi-threaded issue) we need execute the test many times to reproduce the bug. When bug reproduced, developer fixes found problem and execute the test again (with Repeat) to check implemented fix.
2. Search "failed" input data for random failed test.
A test generates random input for tested code and sometimes fails. To found the input data we execute test with attribute Repeat. When the concrete input found, we add relevant test and delete "Repeat" from original test.
3. Testing "multi-threaded" code.
To be sure if a concrete code works in multi-threaded (multi-process) mode, I implement test and permanently execute the test with Repeat(<enough big number>).
I found several attributes "Repeat" only in our tests and, sure, we can change it without any problems to some "loop" implementation inside test.
Also, probably, could you suggest other ways to support scenario where today developers use "Repeat".
Igor.