Well I somewhat share your opinion.
I don't think that SPF per-se is broken, but typical implementations definitely are broken.
I do think that applying SPF to inbound relays is definitely broken. A service provider should allow customers��to nominate their own inbound relays, and customer service should not be spouting obvious nonsense such as "the sender should fix their SPF".
-MK