Even so, you can write code imperatively in scheme, it's just a bit less natural. The keyword 'begin' has the same semantics as common lisp's 'progn', which allows imperative code to be written.
I was careful to say "functional-first". Racket has a fully-fledged object system, too.