Способ, которым я полностью обошел эту проблему, заключался в том, чтобы применить собственную реализацию аппроксимации рисования окружностей с помощью кривых Безье.Статья, подробно описывающая реализацию, может быть найдена здесь http://www.tinaja.com/glib/ellipse4.pdf.
function magic_circle(ctx, x, y, r){
m = 0.551784
ctx.save()
ctx.translate(x, y)
ctx.scale(r, r)
ctx.beginPath()
ctx.moveTo(1, 0)
ctx.bezierCurveTo(1, -m, m, -1, 0, -1)
ctx.bezierCurveTo(-m, -1, -1, -m, -1, 0)
ctx.bezierCurveTo(-1, m, -m, 1, 0, 1)
ctx.bezierCurveTo( m, 1, 1, m, 1, 0)
ctx.closePath()
ctx.restore()
}
Только с этими четырьмя сегментами я смог приблизить окружность намного лучше, чем сборка в реализации Google Chrome Canvas.