Yes, this is as expected.
Note that pre-1.13, :or was a map of binding (unadorned symbol) to default value to be used if a bound key was missing. Any other key type had no meaning and was ignored. In 1.13, :or may contain literal keys that will be added to the :defaults map or be used to fill in the :select map (they have no other use).
1) No :defaults or :select, so :a is just ignored.
2) a is now bound and thus :a is required. Because of this, there is no possibility to use :a from :or in :defaults or :select, so this is now an error.
3) Again, :b is not needed for :defaults or :select, so ignored (really same as #1).