I've reproduced the situation in a simple test project. The mpk can be downloaded here (tinyupload)
To reproduce, go to the employee page, new, add an employee by entering the name. Add some more if you want. Open the search popup and your employees will be shown. Select one, change the name, do not save it but click the search button. The unsaved name is shown in the list with the results.
If I debug the flows used, I see that the objects are correctly retrieved from the database, but when setting the list to the helper object and retrieving it from the helper object again, the unsaved value is shown.
Any explanation of the behaviour will be appreciated.
Then this is either a bug or you did save the object somewhere, because your assumption is correct. The rule is simple, retrieving from database will give you the data as it is in the current database. So if I change some value in an entity and in the microflow also retrieve that entity again these should be different.