I have a whittled-down test case where when I use qcrecord (and presumably, crecord as well), it leaves some changes behind.
To see this happen, unpack the attached tarball. This will create an hg repo in a directory 'crecord-bug'.
hg series -v # There is a single patch in an mq queue
hg qpush # apply the patch
hg qref -X '*' # empty out the patch, putting changes in working directory
hg qcrecord newpatch # bring up the UI
Press 'c' to accept the whole patch
hg diff # you will see some changes left behind!
Note that I first saw this when selecting a whole patch, with multiple files, except for a couple of changed lines in one file. So this isn't an artifact of accepting a whole patch, or only having a single file, or something like that.