Por que não devo chamar setVisible (true) antes de adicionar componentes?

Eu já vi escrito neste site um certo número de vezes (comoAquieAqui) que você não deve chamarsetVisible(true) antes de adicionar componentes a umJComponent, mas eu não vi uma explicação, e a informação na internet parece escassa.

Por que esse é o caso e o que acontece se você quebrar a regra?

questionAnswers(2)

yourAnswerToTheQuestion