De acordo com a documentação do vim, :q fecha a janela atual e só sai se não houver mais janelas. No vim, as janelas são meramente "viewports", onde os buffers podem ser exibidos. A documentação do vim em si resume isso muito bem. De :help window :
A buffer is the in-memory text of a file.
A window is a viewport on a buffer.
A tab page is a collection of windows.
Se você tem a opção hidden definida, fechar uma janela oculta o buffer, mas não " abandon ", portanto, o vim ainda está acompanhando o conteúdo. Com 'hidden' set, quando você "reabre" o arquivo, você está simplesmente reexibindo / descompactando o buffer, na verdade não reabrindo o arquivo no disco.
Para mais informações, consulte
:help hidden
:help abandon