In no particular order.
Readability Any sequence of normals, except a very short one, is nearly impossible to read and understand. Vimgolf can't lie.
Clobbering registers etc. Quite often there is more things to change than one can even remember of. For example, your code sets at least four(!) registers and six(!) marks. Plus :h changelist and :h jumplist. ...
Not an answer, but I think you'll appreciate it.
let saved_pos = getcurpos()
call setpos('.', saved_pos)
I used "better" functions ("better" - maybe not. Up to you). And mixed/matched normals with scripts. What do you think?
Read this: Master Wq and the Markdown acolyte from https://blog.sanctum....