This article shows some of the issues. But basically, on the web, you have
strokeStyle, and in WebGL you have those different ways of rendering primitive lines, but you end up needing workarounds to draw more complex lines. In CSS borders don't have patternable backgrounds, etc.
Wondering why this limitation is placed on strokes/borders, if it has some history or background on why. It seems like in many cases you want a line to have as much freedom as a "fill", such as gradients, patterns, animations, text, etc. For example, pen strokes vary in thickness all over the place, but strokes typically only support 1 width.