This is consistent with VIM behavior. When showing a visual selection, VIM only extends it past the last character if eol is in listchars (even if nolist is set).