I agree that this is very annoying. It is not every job and not after every run which makes it even weirder.
I have the jobs' configs in Perforce, as well and it would be great if I could do some configuration on some jobs and then simply run "p4 reconcile" to get the deltas.
Which should just be the things I just changed. But with this behavior, I will always get x other job changes checked in that really have not changed except for the firstChange property. Alternating between 0 and -1.
I am wondering what that property is used for and what would happen if one manually deleted that row in the jobs' config xml...
It would be a dirty workround, but in case that property does nothing important, one coudl remove that row of the xml with some awk or sed in a script that simply runs over every job config xml before one checks in ones changes.