Since milestones have no work, no resources, no duration, and no costs
associated with them they're a wash in Earned Value and won't affect SPI or
CPI one way or the other. Your assertion that a plan containing milestones
can never have an SPI equal to unity is simply not true. Try it with a
simple plan starting on a Monday morning - 5 tasks of 5 days duration each
with a milestone between each one. Link them all in succession FS. Create
resource Fred with a rate of $1.00 and assign him to all the tasks. In the
Tools, Options, View menu check the box to display the Project Summary Task.
Save a baseline. Set the current/status date to halfway through the 4th
performance task and use the tracking menu's Update Project tool to show
on-schedule progress up to that date. Now display the Earned Value Schedule
Indicators table and in the Project Summary Task line you'll see an SPI of
"1" bigger than life. Likewise the CPI in the Cost Indicators table will
also be "1" exactly as it should.
HTH