I had an issue once, where the users didn't notice that the change they requested has already happened. It was a registration form, and they just kept pressing the button, without realizing that it's been done already.
It didn't matter if it was blinking up once, they were occupied by pressing the button, concentrating on that one, despite being the change next to the button.
Our solution was to put a 250msec delay in that, thereby rising the response time above the 120-200msec cognitive barrier, and framing it as a reaction. Worked.
Personally I hate loading indicators that show up only for a fraction of a second, as all they cause is flickering - if it's below 120 msec, the user doesn't even notice, and it takes about 300 msec just to realize "what the f..." can that thing be.
Therefore, when I expect the results to come nearly immediately, but there's a risk that it'll take more time, I put a timer for the load indicator to about half a second. If the answer comes before that, it's instantaneous, if it doesn't, they still get a quick feedback.