Ter x.split(y)sempre retornado uma lista de 1 + x.count(y)itens é uma regularidade preciosa - como @ gnibbler já apontou, ele faz splite joinexatas inversos um do outro (como eles obviamente deveriam ser), ele também mapeia precisamente a semântica de todos os tipos de registros unidos por delimitadores ( como csvlinhas de arquivo [[net of Quoting Issues]], linhas de /etc/groupUnix, e assim por diante), permite (como a resposta de @ Roman mencionou) verificações fáceis para (por exemplo) caminhos absolutos vs relativos (em caminhos de arquivo e URLs), e assim por diante.
Outra maneira de ver isso é que você não deve jogar informações pela janela sem qualquer ganho. A que ganharíamos fazendo x.split(y)equivalente a x.strip(y).split(y)? Nada, é claro - é fácil de usar a segunda forma quando isso é o que você quer dizer, mas se a primeira forma foi arbitrariamente entender-se o segundo, você tem muito trabalho a fazer quando você não quer que o primeiro ( o que está longe de ser raro, como o parágrafo anterior indica).
Mas, na verdade, pensar em termos de regularidade matemática é a maneira mais simples e geral de aprender a projetar APIs passáveis. Para dar um exemplo diferente, é muito importante que, para qualquer xe y x == x[:y] + x[y:]- o que indica imediatamente por que um extremo de um corte deve ser excluído. Quanto mais simples a afirmação invariável que você pode formular, mais provável é que a semântica resultante seja o que você precisa nos usos da vida real - parte do fato místico de que a matemática é muito útil para lidar com o universo.
Tente formular o invariante para um splitdialeto no qual os delimitadores iniciais e finais são casados especiais ... contra-exemplo: métodos de string como isspacenão são maximamente simples - x.isspace()é equivalente a x and all(c in string.whitespace for c in x)- aquele líder bobo x andé o motivo pelo qual você tantas vezes se encontra codificando not x or x.isspace(), para voltar à simplicidade que deveria ter sido projetada nos is...métodos de string (em que uma string vazia "é" qualquer coisa que você quiser - ao contrário do senso comum do homem da rua, talvez [[conjuntos vazios, como zero & c, sempre confundi a maioria das pessoas ;-)]], mas em total conformidade com o óbvio bom senso matemático refinado ! -).