Return values from .then() are implicitly wrapped in resolved Promises, like Promise.resolve(returned value). I didn't know this when writing a lot of tests last year.
<rdar://problem/28015360>