This also seems to be the same bug as in
1834305,
1843328 or
thread 322725 in mobileread.
And the Launchpad bug,
you mentioned, references to
Kernel bug 203973 and when you follow the comments, you will see that
this won't be fixed in the Kernel.
But luckily
it seems that this bug could be avoided in Calibre, too:
the following will cause an eject:
python -c "import os; f = open('/run/media/kovid/Kindle/driveinfo.calibre', 'r+b'); os.fsync(f)"
but the following will not:
python -c "import os; f = open('/run/media/kovid/Kindle/driveinfo.calibre', 'r+b'); os.fsync(f); f.read(1)"