Appending (or removing) a semicolon to the end of the line is a common operation. Yet commands like A; modify the current cursor position, which is not always i
A;
I don't think I've ever needed to remove a semicolon at the EOL but for adding a semicolon, I have
nnoremap ,; m`A;``
Which sets a context mark, appends the semicolon and jumps back.