I don't think you can lump all the Scheme languages into one umbrella and more importantly lump Scheme and Haskell in that context.
For example, Racket has really good constructs that lets me "drop 'purity'", control side-effects, build sequences, control the flow, build classes, manage complexity while at the same time giving me the power to build higher levels of abstractions, express my thoughts and reason with my program.
Reference:
0. Racket Guide: http://docs.racket-lang.org/guide/index.html
1. System Programming with Racket : http://docs.racket-lang.org/more/