Seems like you're just closing the active window (terminal) in both cases. You can map <cr> similarly:
nnoremap <cr> : if filetype('.', 1) == 'dir'
\ | open
\ | else
\ | execute '!'.$VIFM_TERMINAL 'vim %c &'
\ | endif<cr>
An alternative is changing 'vicmd' option, but there a script may be necessary to keep everything working as expected.
Edit: added 1 parameter to resolve symbolic links.
Edit 2: this change fixes :open for symbolic links to directories when vifm is not present in $PATH. Until then, use cd %c as a functionally-equivalent workaround.