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 vb).
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=