I have made some tests and the results are strange:
600 moving objects with alfa channels:
HWA = 50 FPS
Standard = 32 FPS
With simple loop that set each objects val A to 1:
(spread value, then if that value=loopindex...)
Isnt that pretty strange? It slows down much more than standard and difference between HWA and standard gets from 20 to 2 FPS.
You can check on attached file. Just remove (or later add) action Set alt.value A to 1 in the loop condition and check both display modes.