I just wanted to share that I ran into a similar problem and found that it’s a browser-dependant issue.
Rather than listening to changes in the “filename” property, I have an event handler for the “value” property of FileInput. I upload a file, then change something in the file, and then upload it again. In this situation, I get the same problem that the callback doesn’t get triggered on the second upload on 2 out of 3 browsers. Note also that, if I upload a second file in between the two uploads of the same file, then the callback does get called, and I can see that the “value” property does actually change. So it’s clearly a bug in the FileInput widget.
I use macOS (Big Sur 11.4), and the problem happens on Chrome (version 93.0.4577.82) and Safari (version 14.1.1) while on Firefox (version 91.0.2) it works as expected.