Slight nit with title: Monad Transformers can be used to model exceptions, but are more general - really they are a way to compose monads on a per-type basis (because all monads do not compose together automatically "for free" like functions or Functors).
I think that the title is meant to be interpreted as "(A Gentle Introduction to Monad Transformers) – or, (Values as Exceptions)" rather than "(A Gentle Introduction to ((Monad Transformers) – or, (Values as Exceptions)))". That is, I think that the intention is to introduce the reader to monad transformers by reifying exceptions into values (and thus arriving at monad transformers), rather than to give the reader a complete understanding of monad transformers, which are (in this hypothetical world) the same thing as exception-reifying values.
Also there are non-transformer ways to handle errors in Haskell, see: http://blog.ezyang.com/2011/08/8-ways-to-report-errors-in-ha...