I write cleaner code now than I used to, I find it actually makes it easier to write, to maintain, and to extend. I program in an almost object-oriented style in Asm these days. But being able to support different processors really shouldn't be a problem... if you write for plain 68000 user mode it should work on anything, but for some reason a lot of game and demo coders felt the need to go into supervisor mode, I don't know why. And they didn't even do that the proper way.
The other thing that can screw things up is writing wherever you want in memory instead of using the OS functions to reserve memory, that's just plain lazy as far as I'm concerned, there's no excuse and you're just making trouble for yourself.
There were some A500 games that wouldn't work if you had fast RAM, I don't know why, maybe they did use the OS to reserve memory but didn't request Chip RAM for graphics and sound. Really basic error.