Example steps to reproduce with the qbs project itself:
1) Build qbs
2) Now do "qbs build --changed-files src/app/qbs/commandlinefrontend.cpp"
3) Dozens of files are rebuilt from all kinds of products. A suspiciously high number of commands are about moc'ing headers and compiling moc_cpp files.
3) Run the same command again. Now it works exactly as expected, that is, only the commandlinefrontend.cpp file is recompiled and then the qbs app is linked.
4) Run just "qbs build", as in 1). Now the same thing happens as in step 3)!