To cut a long story short: Yes, most applications can just be ported.
The number of applications that rely on the actual clock rate being steady is extremely close to zero. Bear in mind nearly everything runs fine on laptop machines, which generally have a much wider range of clock states, and have no problems.
Similarly, each core in modern machines is likely to be running at a different speed, and again, no problems.
Finally, the clock rates used are a matter of OS policy; if you tell your OS to keep the CPU at a particular speed, it'll do it, regardless of whether it's an x86 or an ARM CPU.
Bugs like the ones you describe come down to timing.
But it's not like "the old days" where for a specific target, there was only 1 chip/clockspeed so devs simply relied on it for timing since an RTC was or not available, or too slow to access.
These days, it would be very hard to actually write code that relies on a specific clock-rate and work reliably. It's a lot easier and reliable to use the clock for time-sensitive stuff.
The number of applications that rely on the actual clock rate being steady is extremely close to zero. Bear in mind nearly everything runs fine on laptop machines, which generally have a much wider range of clock states, and have no problems.
Similarly, each core in modern machines is likely to be running at a different speed, and again, no problems.
Finally, the clock rates used are a matter of OS policy; if you tell your OS to keep the CPU at a particular speed, it'll do it, regardless of whether it's an x86 or an ARM CPU.