I believe that only timers "cache" stuff in the way you're talking about. A while loop will re-read the data every time you go through. This can make for a slow script if you don't need to read it every time. For that reason, it's often good to put the read/readini into a variable before the while starts and then use the variable as needed in the loop so it's read only once. Depending what you're doing in the loop, this may or may not be possible, though.
too bad, dont get though what flushini is for and when it actually dont read it from file, a good feature for mirc would be to add a switch to the readinivariable like -m so it only read from memory, in that way it would be awsome way to speed up advanced scripts that cant be done with hashtables...