this was exactly my point. You introduce RSpec rather than rails unit testing.
RSpec is also used by the majority of Rails developers (based on a random stat I pulled out of the air and due to my experience on many, many Rails projects) and it should be treated as the default, even though it is not.
...what makes you think this is less confusing? Test::Unit is blindingly simple, your assertions are plain old functions that take plain old arguments. I can build new assertions through simple function definition.
Rspec, on the other hand, adds methods to everything to let you structure your code so it reads like English. The goal here is not to be less confusing, but to be easier to read. RSpec is a lot harder to learn, and writing custom matchers is a lot more work than gluing together assertions.
Seriously, watch somebody new trying to figure out RSpec ... it's a bit of an ugly sight. Their first experience with automatic predicate matchers typically is a true wtf moment.
Teaching haml and Rails at the same time would only confuse people as they will need to learn Rails AND haml at the same time. If anything, it would be better to introduce this as a "bonus chapter" or an appendix and let people choose for themselves rather than forcing them to learn something excessive.
Now, you may think that I would argue the same point for SCSS too. But now that SCSS is the default within Rails 3.1, it is "right" to teach it at the same time as Rails. The "leap" from CSS to SCSS is not as large as the one from HTML to haml, either.