FWIW, I think AIX is compliant here. I believe that this syntax is valid:
for x; do y; done ... and this syntax is also valid for x do y done ... but for x; do y done ... isn't (at least in some POSIX versions - I don't know if this changed at any point).