It is, from my point of view, normal to have the same value returned by earliest() and last(), as we did not change the order of the events. I am surprised to receive different values for first() and latest().
If we run:
index=myindex sourcetype=mysourcetype | head 1 | table myfield
The value returned by latest() seems to be correct. What is returned by first()?
first() gives you the value first seen by the reporting command, with no regard for the timestamp. Depending on what's returned first to the search head from the indexers this may or may not match with latest().