I've never really liked Universal Turing Machines (UTMs) as a model for computation. They have some weird properties that mean complexity classes on a UTM don't quite line up with complexity classes on any real computer. Unlimited Register Machines (URMs) are also a universal model of computation. You can trivially implement a UTM on a URM to prove this. But they're also much easier to reason about because they have arbitrary amounts of temporary state that's easy to reach, whereas Turing Machines need to reserve regions of the tape for temporaries and then copy things there (which is an O(n) operation in the length of the temporary value, which can make things that are O(n) on any plausibly real computer O(n2) on a UTM, though most proofs fudge this by operating on fixed-sized values).
URMs are also much easier to write algorithms for and are much closer to how real computers work, to the degree that most compilers target a URM internally, perform optimisations on that representation, and then target the real finite-register machine (with separate memory).