What's the issue? I use nvim and regularly use :! and haven't noticed an issue.
It does something using neovim's internal terminal mode rather than use the file descriptors it was called with. Most commonly this breaks when a command produces an interactive prompt or uses a pager.
It doesn't support interactive commands. For example if you run a command that asks for input before finishing, it gets swallowed.