As part of my work on getting Swift-on-OS-9 to work, I turned off the emission of default witness tables on the grounds that I'd never need library evolution and thus would never be adding new requirements to an existing protocol without recompiling. However, that's true of anyone who compiles a program without library evolution today, especially an executable.
I do realize that somebody synthesizing protocol conformances might want to know the default implementations for operations. Still, these seems ripe for something that can be turned off to save a bit of code size. Is this kind of run-time synthesis a use case we care about?