I'm pretty sure they actually look at and raise an idol's 'potential' as described in the 8.0 changelog, which would explain why you don't see the stat being increased and why it's taking idols that may look like they are at your defined cap. Not sure if I'm right, though.
I don't think that's true. My training max was set to 20, the idols stat cap was 20, and the displayed stat was 20. So, if they were reading and reacting to the potential stat... wouldn't they have trained once (raising the hidden stat to 21) and quit? (Instead of constantly reloading the idol and training the same stat in an endless loop).