Isso é um erro comum para quem está iniciando. Isso não funciona porque a linguagem Java sempre passa parâmetros por cópia. Mesmo quando o argumento é um objeto, o que é passado é uma cópia da referência, e não a referência em si. Ou seja, você deve pensar em btn e b como variáveis diferentes, mesmo que elas apontem para o mesmo objeto. No seu caso, a maneira correta de fazer o que você pretende é:
Mas e se eu quiser adicionar eventos ao botão? Já que o retorno é o último comando.
rmendes08
É só criar uma variável dentro do método e usá-lo normalmente. No final, você retorna a referência. Lembrando que será criada uma cópia da referência (e não do objeto).