I think that the behavior of this patch that silently ignores --exlcude-database "non-existent-db" is broken. What if someone has a large database "my-db-name", and they misspell it:
$ vacuumdb --all --exclude-database "my-dbname"
This will kick off a vacuum including the "my-db-name" they were trying to exclude.
I think it would be better to generate an error and not do anything in this case.
This also tracks with vacuumdb's existing behavior on --table/--schema which will tell you about a typo.