String.Split funciona de forma estranha quando o último valor está vazio

Gostaria de dividir minha string em array, mas funciona mal quando o último "valor" está vazio. Veja meu exemplo, por favor. É bug ou recurso? Existe alguma maneira de usar essa função sem soluções alternativas?

var
  arr: TArray<string>;

  arr:='a;b;c'.Split([';']); //length of array = 3, it's OK
  arr:='a;b;c;'.Split([';']); //length of array = 3, but I expect 4
  arr:='a;b;;c'.Split([';']); //length of array = 4 since empty value is inside
  arr:=('a;b;c;'+' ').Split([';']); //length of array = 4 (primitive workaround with space)

questionAnswers(2)

yourAnswerToTheQuestion