As outras respostas já são muito boas e sei que seu exemplo é apenas um exemplo, mas quero destacar uma grande parte desse processo que ainda não foi discutido:
Você precisa identificar suas suposições e, em seguida, testar essas suposições em relação a casos específicos.
Olhando para o seu exemplo, vejo algumas suposições:
- A abordagem recursiva acabará causando um erro.
- Ninguém verá esse erro porque os vídeos demoram muito para serem reproduzidos para atingir o limite de pilha.
Outras pessoas discutiram a primeira suposição, mas olhe a segunda suposição: e se meu vídeo tiver apenas uma fração de segundo?
E claro, talvez esse não seja um caso de uso muito comum. Mas você está realmente certo de que ninguém fará upload de um vídeo muito curto? Você está assumindo que os vídeos têm duração mínima, e você provavelmente nem percebeu que estava assumindo alguma coisa! Esta suposição poderia causar algum outro erro em outros lugares em sua aplicação?
Os pressupostos não identificados são uma enorme fonte de erros.
Como eu disse, sei que o seu exemplo é apenas um exemplo, mas esse processo de identificar suas suposições (que geralmente é mais difícil do que parece) e depois pensar em exceções a essas suposições é um grande fator para decidir onde gastar seu tempo.
Então, se você se achar pensando "Eu não deveria ter que programar em torno disso, já que isso nunca vai acontecer", então você deve levar algum tempo para realmente examinar essa suposição. Muitas vezes você pensa em casos que podem ser mais comuns do que você imaginava.
Dito isto, há um ponto em que isso se torna um exercício de futilidade. Você provavelmente não se importa se o seu aplicativo JavaScript funciona perfeitamente em uma calculadora TI-89, então gastar qualquer quantidade de tempo com isso é apenas um desperdício.
As outras respostas já cobriram isso, mas chegar a essa linha entre "isso é importante" e "isso é uma perda de tempo" não é uma ciência exata, e depende de muitos fatores que podem ser completamente diferente de uma pessoa ou empresa para outra.
Mas uma grande parte desse processo é primeiro identificar suas suposições e, em seguida, tentar reconhecer exceções a essas suposições.