Using varnishadm you can reload your vcl after editing it, without restarting varnish.
That means your cache is intact:
# varnishadm
varnish> vcl.load default /usr/local/varnish/etc/varnish/default.vcl
200
VCL compiled.
varnish> vcl.use default
200
varnish>
What I found really practical was that this way I also could detect and fix errors in my vcl config, without varnish going down.
varnish> vcl.load default /usr/local/varnish/etc/varnish/default.vcl
106
Message from VCC-compiler:
Expected ')' got '{'
(program line 73), at
('input' Line 105 Pos 51)
if ( !( req.url ~ "(login_form|manage)") {
--------------------------------------------------#
Running VCC-compiler failed, exit 1
VCL compilation failed