In principle, Non-uniform rational B-splines (NURBS) can be used to represent conic sections. The difficulty is finding the correct set of control points and knot weights. The following function does this.
EDIT :
Better handling of cases where end angle < start angle
ClearAll[splineCircle];
splineCircle[m_List, r_, angles_List: {0, 2 \[Pi]}] :=
Module[{seg, \[Phi], start, end, pts, w, k},
{start, end} = Mod[angles // N, 2 \[Pi]];
If[ end <= start, end += 2 \[Pi]];
seg = Quotient[end - start // N, \[Pi]/2];
\[Phi] = Mod[end - start // N, \[Pi]/2];
If[seg == 4, seg = 3; \[Phi] = \[Pi]/2];
pts = r RotationMatrix[start ].# & /@
Join[Take[{{1, 0}, {1, 1}, {0, 1}, {-1, 1}, {-1,0}, {-1, -1}, {0, -1}}, 2 seg + 1],
RotationMatrix[seg \[Pi]/2 ].# & /@ {{1, Tan[\[Phi]/2]}, {Cos[ \[Phi]], Sin[ \[Phi]]}}];
If[Length[m] == 2,
pts = m + # & /@ pts,
pts = m + # & /@ Transpose[Append[Transpose[pts], ConstantArray[0, Length[pts]]]]
];
w = Join[
Take[{1, 1/Sqrt[2], 1, 1/Sqrt[2], 1, 1/Sqrt[2], 1}, 2 seg + 1],
{Cos[\[Phi]/2 ], 1}
];
k = Join[{0, 0, 0}, Riffle[#, #] &@Range[seg + 1], {seg + 1}];
BSplineCurve[pts, SplineDegree -> 2, SplineKnots -> k, SplineWeights -> w]
] /; Length[m] == 2 || Length[m] == 3
This looks rather complex, and it is. However, the output (the only thing that ends up in the final graphics) is clean and simple:
splineCircle[{0, 0}, 1, {0, 3/2 \[Pi]}]

Just a single BSplineCurve with a few control points.
It can be used both in 2D and 3D Graphics (the dimensionality of the center point location is used to select this):
DynamicModule[{sc},
Manipulate[
Graphics[
{FaceForm[], EdgeForm[Black],
Rectangle[{-1, -1}, {1, 1}], Circle[],
{Thickness[0.02], Blue,
sc = splineCircle[m, r, {start Degree, end Degree}]
},
Green, Line[sc[[1]]], Red, PointSize[0.02], Point[sc[[1]]]
}
],
{{m, {0, 0}}, {-1, -1}, {1, 1}},
{{r, 1}, 0.5, 2},
{{start, 45}, 0, 360},
{{end, 180}, 0, 360}
]
]

Manipulate[
Graphics3D[{FaceForm[], EdgeForm[Black],
Cuboid[{-1, -1, -1}, {1, 1, 1}], Blue,
sc = splineCircle[{x, y, z}, r, {start Degree, end Degree}], Green,
Line[sc[[1]]], Red, PointSize[0.02], Point[sc[[1]]]},
Boxed -> False],
{{x, 0}, -1, 1},
{{y, 0}, -1, 1},
{{z, 0}, -1, 1},
{{r, 1}, 0.5, 2},
{{start, 45}, 0, 360},
{{end, 180}, 0, 360}
]

With Tube and various transformation functions:
Graphics3D[
Table[
{
Hue@Random[],
GeometricTransformation[
Tube[splineCircle[{0, 0, 0}, RandomReal[{0.5, 4}],
RandomReal[{\[Pi]/2, 2 \[Pi]}, 2]], RandomReal[{0.2, 1}]],
TranslationTransform[RandomReal[{-10, 10}, 3]].RotationTransform[
RandomReal[{0, 2 \[Pi]}], {0, 0, 1}].RotationTransform[
RandomReal[{0, 2 \[Pi]}], {0, 1, 0}]]
},
{50}
], Boxed -> False
]

Additional uses
I used this code to make the partial disk with annular hole asked for in this question.
BSplineCurve[]. – 0x4A4D♦ Sep 23 '12 at 1:24ParametricPlotwithGeometricTransformation, see example. And, you can also replaceLinewithTubeand it works. – VLC Sep 28 '12 at 10:57