I have the following lines in my .vimrc, which I thought would be more than sufficient:
nnoremap <left> <nop>
nnoremap <right> <nop>
nnoremap <up> <nop>
nnoremap <down> <nop>
inoremap <left> <nop>
inoremap <right> <nop>
inoremap <up> <nop>
inoremap <down> <nop>
The arrow keys don't do anything (as expected) in normal mode, but continue to function in insert mode. I've also tried imap and that doesn't work either. Querying the mapping with inoremap <left> confirms that the binding isn't getting overwritten by something else. I'm not sure what's going on.
As one last test, I started up vim with no vimrc with vim -u NONE, then only ran the mappings. If I enter insert mode and hit an arrow key now, it inserts the letters A, B, C or D on a new line where my cursor is, which is completely not what I was expecting.