Em java, o valor de retorno dentro do bloco sincronizado parece um estilo ruim. Isso realmente importa?

Tenho um Collections.synchronizedList de WeakReference, _components;

Eu escrevi algo como o seguinte, esperando o reclamante reclamar:

public boolean addComponent2(Component e) {
    synchronized (_components) {
        return _components.add(new WeakReference<Component>(e));
    }        
}

Mas o compilador está perfeitamente satisfeito. Observe que List.add () retorna VERDADEIRO. Então, ok, qualquer saída de um bloco sincronizado libera o bloqueio, mas isso não parece estranho? É como um "buraco" no bloco, semelhante ao uso de retorno em um loo

ocê gostaria de manter um código como ess

questionAnswers(2)

yourAnswerToTheQuestion