so I guess the exclusive lock is only for the table that is vacuumed for the moment and not all tables at ones.
Correct, tables are only going to lock one at a time unless you put the database in single-user mode.... and commands can wait a set amount of time, if the operation occurs quickly then it isn't an issue. My mentioning of it was more in the fact that on startup there seems like there is a high likelihood of things attempting to insert into the very table that is being locked.
I've seen errors with this in Indigo not in vacuuming but when a state definition change causes the table to be modified. When Dave would add states to Weather Underground, for instance, I would get a TON of errors while the plugin attempted to add (or modify if a data type change) the column. Large table and had tons of rows, though.
Might be over thinking it in this case, but performance of the database from applications is a big portion of my job so I tend to worry about those things outside of it as well. I guess my point is it could be prevented fairly easily to be sure it doesn't occur.