Even though Vim saves the last known cursor position into viminfo file upon exit, it doesn't restore it by default. Instead, there is a piece of VimScript code at :h restore-cursor
(also in defaults.vim) that may be used to perform this task. So practically everyone re-uses it.
If you look into the code you'll see that it tries to avoid restoring cursor position in git commit files specifically. So you need to inspect your custom config and find out what is the modified version you have there and why it doesn't work 100% correctly.
An alternative approach, that I'm using in my own config, is to capture VimLeavePre event and to wipe all offending buffers there, so they couldn't get into viminfo at all. However, one still needs to define all logical checks - by file type, by contents, by other flags, etc., even in this case.
And to make it clear, you can't do this by ftplugin, as restoring the cursor position normally works by BufReadPost event, not by FileType event.