It was only silencing one checker because -analyzer-config flags can only carry one value at a time.
The silencing mechanism is still not working correctly in presence of conflicting flags, i.e. scan-build -disable-checker core.foo -enable-checker core.foo leaves core.foo silenced whereas scan-build -disable-checker unix.foo -enable-checker unix.foo leaves unix.foo enabled. I'd prefer to promote silencing to a frontend flag in order to fix that but that'd be more work that's fairly orthogonal and i'm currently looking for a quick fix.