Let's rephrase the question - Is there any reason consumer ISP's don't follow BCP38?
There is almost no reason whatsoever for clients to spoof their public IP address. Obviously, there are reasons to SNAT at the carrier level for load balance or routing purposes.
No good reason except it's for the health of the Internet.
And it doesn't cost any significant amount of money except initial configuration and automation. The "CPU power" to add an ACL on interfaces is negligible.