I believe that 18.1 did not do a good job of refreshing the row or cell css classes when the model changed. I think this was first fixed in 18.2. I don't think there was a bug number associated with this improvement. I don't have an old 18.1 handy to test with but I can see this from looking at code diffs. You can compare the code from 18.1 and 19.1 and you will see that one has a getCellClass function and the older one does not.
I recommend upgrading to a later version of APEX if at all possible.
You may be able to work around this by forcing the row to re-render itself by calling the internal method _replaceRecord. This is why it shows correctly after save; because save results in the row being re-rendered. Because it is an old release, internal methods and something that is fixed I can't investigate this workaround. You can probably figure out how to use _replaceRecord by looking at the code.
Thank you John for the reply. Your answer is enough for me, just needed to know whether I can consider it as the bug or not.