`foldr (+) 0` is going to create a bunch of thunks replacing the spine of the list. This is desirable if the number type can take advantage of laziness in some way (eg a `data Nat = Z | Succ Nat`), but for most cases, the `foldl' (+) 0` implementation is preferable.
`sum' = foldl' (+) 0` would (in my opinion) be a reasonable addition to the Prelude, or at least Data.Foldable, but no one has done the work to do that -- if you raise an issue on the GHC Trac then it will be up for discussion and possible inclusion.