The files are loaded on the playlist through the errors.
Yes, that is something that is wrong. Like I indicated earlier : it is your 1) causing it, the other errors following from that.
This is wrong by itself in the code indeed (loading through the errors).
That reencoding can help is not strange.
That other programs may not be bothered by it is not strange as well. Think of this : I always respected the length as indicated in the header (think normal WAV files now). Today I changed that by, say, just using the physical file length. This is not the way it should go, but it is less error-prone anyway.
Doing this for FLAC is not so easy (at all), because the file length is unrelated to the original file length (as you might have expected). BUT :
The only reason why I grab the file length from the header data, is in order to present the time, which in the end *is* important, thinking of the bottom slider ... That by itself causing "synchronization" with the playback, as you in fact noticed earlier.