Limpando código repleto de InvokeRequired

Eu sei que ao manipular controles da interface do usuário de qualquer segmento que não seja da interface do usuário, você deve organizar suas chamadas para o segmento da interface do usuário para evitar problemas. O consenso geral é que você deve usar o teste InvokeRequired e, se verdadeiro, usar .Invoke para executar o empacotamento.

Isso leva a muito código que se parece com isso:

private void UpdateSummary(string text)
{
    if (this.InvokeRequired)
    {
        this.Invoke(new Action(() => UpdateSummary(text)));
    }
    else
    {
        summary.Text = text;
    }
}

Minha pergunta é a seguinte: posso deixar de fora o teste InvokeRequired e apenas chamar Invoke, assim:

private void UpdateSummary(string text)
{
    this.Invoke(new Action(() => summary.Text = text));
}

Há algum problema em fazer isso? Em caso afirmativo, existe uma maneira melhor de manter o teste InvokeRequired sem precisar copiar e colar esse padrão em todo o lugar?