Personnally I would go for higher max RPM (but I’m not sure 30k vs 25k will matter that much)
Quick tool change is nice (Kress?) but unless you are doing production and every second counts, I don’t think it matters that much on a Shapeoko. I would buy several sets of collet and collet nuts, and prepare all tools in advance in their own collet & nut: changing tools will then literally take a few seconds.
As a counterpoint, I think the quick tool change is the better option — if RPM comes into play for an operation, it’s just a matter of balancing the feed rate, worst case is you wait on the machine. I’m pretty sure if you calculate the time saved in feed rates it pales in comparison.
For tool changes, the quick change is faster, and my philosophy on a CNC is I have one because my time is more valuable than the machine’s.
(Yes, I really want a Mafell quick change spindle, tool changes are an interruption of my watching the machine and checking in on the help queue and so forth)
They claim the internal stop gives a consistent tool Z position, so the question would be what GCode sender will you be using to store those tool offsets to avoid spending time on re-probing Z every time you change a tool (wastes more of my time than the collet on my AMB FME 1050 does)?
Also, beware the Kress spindle has the clamping point right above the collet so on the Shapeoko you can’t reach the wasteboard from the normal router mount position, I had to make an adapter to get the mount low enough to use most of the 1/4" tools.