ainda que nas linguagens mais modernas costume ser irrelevante
Eu acho que a relevância é, digamos, indireta.
Apesar da maioria das linguagens modernas não permitirem usar ponteiros diretamente, o estudo deles em C permite entender melhor o conceito de referências, que muitas ainda possuem.
Embora nem todas permitam manipular diretamente as referências, ainda sim ajuda a entender certos comportamentos. Um exemplo clássico em Python:
def f(x):
x += 10
def g(x):
x += [ 10 ]
n = 1
f(n)
print(n) # 1
n = [ 1, 2, 3 ]
g(n)
print(n) # [ 1, 2, 3, 10 ]
O número não é modificado pela função, mas a lista sim. Isso porque o primeiro é um tipo por valor, e o segundo por referência.
Apesar de Python não permitir manipulação direta das referências, vc precisa saber o conceito para entender porque em um caso o valor não é alterado e no outro é. E - na minha opinião - estudar C é uma ótima maneira de aprender este conceito, pois vc tem que fazer tudo manualmente via ponteiros.
Algumas linguagens, como C#, permitem escolher se um argumento será passado por valor ou referência, sem precisar de manipulação direta dos ponteiros. Já outras, como Python, JavaScript e Java, não permitem tal controle, pois é o tipo que indica como será passado.
De qualquer forma, estudando C vc entende melhor o que está por trás desses mecanismos e fica mais fácil pra entender outras linguagens - até porque todas usam alguma variação do que já foi citado, mudando um detalhe ou outro.
Por essas e outras que muitos - eu incluso - defendem o uso de C como ferramenta de aprendizado, mesmo que nunca vá trabalhar com ela.