GVim would traditionally make a sound. I have disabled this, [...]
You've discovered what
:help visualbell tells you. The
visualbell setting does not disable the bell. It changes the bell so that instead of outputting the
bel terminfo sequence (termcap code
bl) it outputs the
flash terminfo sequence (termcap code
To disable the bell you must actually null out one of those terminfo sequences, since vim has no way to specify that you don't actually want a "bell" of either sort at all, but only has a way to change between two types of bell.
You can override a terminal's capabilities from within vim with the
:set command. The settable variables in vim that override terminal capabilities are named after the termcap names, not the terminfo names, and vim doesn't have a
t_bl variable. So you have to null out the
flash capability, with the variable named after its termcap code
vb, since one cannot null out the
bel capability, and also select that as the bell that you are using.
:set visualbell t_vb=