Finally we have found the root cause. I have written a report ZJERRY_CACHE_TEST in GM6/001 and schedule it as background job to track the change of that buffer table with interval like 10 seconds.
It has shown that in GM6/001 there are TWO types of caches for Opportunity model. The red one which has our latest enhancement is the correct one, has timestamp 20150205074407 which exactly matches to AG3/001:
The question is, where does another version 20150205092736 come from? ( it does not have our latest enhancement ). It comes from QHD/504. Since QHD/504 still has the older version of OData model, every time an OData request is sent from GM6 to QHD/504, the cache of lower version in QHD/504 will be fetched and filled in GM6/001, which causes the trouble.
In the past it is configured that GM6 could connects both to AG3 ( latest version ) and QHD ( lower version ). After we remove the System alias for QHD/504, this issue is resolved.