I think discussions of "X being magic" are rarely useful (what is "magical" to one developer is completely non-magical to another -- it all depends on your context and level of understanding).  I think here's what I'd say instead for this section:

> `should` and `should_not` work by being added to every object.  However, RSpec does not own
> every object and cannot ensure they work consistently on every object.  In particular, they can
> lead to surprising failures when used with `BasicObject`-subclassed proxy objects.

> `expect` avoids these problems altogether by not needing to be available on all objects.