Pedantemente falando, acho que esse comportamento é aceitável porque é indefinido, já que não tem informação suficiente.
Um link contém texto do link (o texto visível), um destino do link (o URI que é o destino do link)
example.com não é um URI válido por si só, embora se você digitar example.com por si só, ele será transformado em um link. Isso é convenção, não especificação, já que pineapple.belongson.pizza também é um nome de host válido (bem, era até eu deixar o domínio expirar), mas não é automaticamente linkado.
Você pode usar:
- URI raiz
[raiz](/t/384591)
raiz - URI relativo (com ou sem ./)
estes são markdown válidos, mas nosso parser os proíbe
[relativo](../../386082)
relativo
[relativo](./386082)
relativo
[relativo](386082)
relativo - URI absoluto
[absoluto](https://www.example.com/foo.html)
absoluto - URI sem esquema (semelhante ao relativo, mas explicitamente relativo apenas ao esquema)
[sem esquema](//www.example.com/foo.html)
sem esquema
Discutivelmente, este é o comportamento correto. Sem nenhum tipo de ancoragem na frente, é um caminho relativo à localização atual, o mesmo que [link](./example.com).