Рисование кругов мне в голову приходило, но это всё же не решение, а костыль.
1. Для гарантированной гладкости линии круги нужно рисовать избыточно часто — это сильное снижение производительности.
2. Жирный, неравномерный антиалиасинг.
3. Невозможно нарисовать полупрозрачную линию.
И еще множество нюансов.
Прямую линию переменной толщины можно сэмулировать рисованием четырехугольника (вытянутой трапеции), а вот как быть с кривыми?..
Вместо кругов — много четырехугольников? Длину каждого попробовать брать исходя из дельты изменения направления вектора касательной к кривой? Тогда и полупрозрачность можно будет, только возможно получение ступенчатых линий.