Yeah -Qu is still a little funky.
It gets better... packages in databases with Usage = Upgrade do not show up in -Qu. That is clearly wrong!
I left the requirement on Usage = Search after every one disagreed with my patch  to change it. Although I would prefer it if Search had no bearing on this.
So with this patch, Search is needed for a package to be listed and Upgrade is needed for [ignore] to not be added.
My plan is to change alpm_sync_newversion to take an additional parameter to flag whether it should include all databases or just those available for upgrades. It could even be make more flexible and just take the bitmask as a parameter for filtering.
Why not just remove the Usage check all together? You need alpm_sync_newversion to find the packages then later we do the Usage = Upgrade check to add [ignored] to the end of the line.
Unless you want the packages to not show up at all? That's exactly what the previous patch  did.