Ignition timing is referenced to TDC, and is adjusted to cylinder peak-pressure crank angle. It varies due to the effective burn-rate, which is affected by everything from the basic fuel blend, to temperatures of everything, to effective airflow, to fuel vaporization, to MAP, to effective compression, to squish and turbulence, to a dozen other things. Any change in any one factor will result in a change to the best timing at that point, in order to achieve peak cylinder pressure at the most efficient and effective crankshaft angle to produce power.
In many engines, this results in a WOT timing curve that continually increases advance versus rpm, while others it may flatten or retard. For example, the changes to burn rate are dramatic around peak-torque or where components reach harmonics (intake, valve timing, exhaust, etc), and why you see so much attention to the timing ramp or hump there. This is why we have to tune it, and account for all of those factors in the result. Speeduino uses a
Spark Table, which assumes advance for the majority of users, but also retard for those that require it.
I have shamelessly borrowed a timing graph from dragonfly75's site to show the OEM timing he found on two very similar but specific engines. They begin at just below 10° at idle rpm, and end-up at nearly the same timing at high-rpm. For the reasons above and as stated in @kettlekev's quote, these engines tend to require
less advance (retard from peak timing) at higher rpm. Test and tune, and give it what it needs. Roaming his web pages will show how some factory curves are outright horrible. We have the ability to fix that.
Credit: dragonfly75.com