I don't think all forms of initialization need a volume. An obvious counter example is digging a Service, modifying network interfaces in the pod is another. I don't know how /dev/shm and ipc namespace will work, but shared memory might be another example.   That said, I do think a common use case for init containers will be db initialization. IMO having 2 some-what overlapping idioms is not too bad.  