My 2010 Corolla Auto does the same thing.
I think that the cpu is programmed to increase the idle rpm when the a/c and/or the head light is turned on.
My observation when the car is fully warned up is:
a) Foot on Brake and gear on Drive, idle = about 600 rpm
b) Foot on Brake and gear on Neutral, idle = about 700 rpm
c) As (a) plus a/c or light turning ON, idle = about 800 rpm
d) As (b) plus a/c or light turning ON, idle = about 800 rpm
It seems to me the designer for this 2010 auto model fails to maintain the idle speed to a satisfaction range because the cpu could be programmed for such purpose and the idle speed could be programmed for any rpm if the designer likes.
For condition (a), 600 rpm is a bit too low because it will be at the critical stable rpm. 650-700 rpm would be a better option which is the same rpm at conditon (b).
The rpm for (c) and (d) should be slightly lower, say 700-750 rpm.