The check done by name_ends_in_uninstalled() matches the 'uninstalled' string, while the appended string is '-uninstalled'. I think the intent is to have the hyphen in the former string as well.
Yes, I think you're right. Good catch. So, current code would match foouninstalled.pc, but really we want foo-uninstalled.pc. That's also what the man page says. Fixed in commit 3aa6216.