Both are fine. I don't think there's any consensus about which is better. There's a third option:
fn do_a(self) -> Self { self }
which is used for things like iterator chains. It's not better or worse than &mut self, they interact with ownership and borrowing differently.
BTW: you don't need <'this>. If you don't write any lifetime annotations, the default assumption is that returned references borrow from arguments, which is almost the same what you've written. Explicit lifetimes on &self generally are not needed, and can only cause problems.