métodos abstratos internos. Por que alguém os teria?

Eu estava fazendo uma revisão de código hoje e me deparei com um código antigo escrito por algum desenvolvedor. É algo como isto

public abstract class BaseControl
{
    internal abstract void DoSomething();
}

Se você tiver uma classe derivada na mesma montagem, ela funcionaria

public class DerivedControl : BaseControl
{
    internal override void DoSomething()
    {
    }
}

Mas derivar a classe base em um assembly diferente daria erro de tempo de compilação

DerivedControl does not implement inherited abstract member 'BaseControl.DoSomething()

Isso me fez pensar. Por que alguém declararia um método como abstrato interno?

questionAnswers(4)

yourAnswerToTheQuestion