If I'm modelling a circle to an exact size, how do I account for change in size with subsurf?
Use object dimensions.
Can use the object dimensions.  Eg add a plane or circle and set subsurf. Set the subsurf of view to render.
For example sake added default plane
In the python console
&gt;&gt;&gt; # level 0 subsurf
&gt;&gt;&gt; C.object.dimensions
Vector((2.0, 2.0, 0.0))

&gt;&gt;&gt; # level 1
&gt;&gt;&gt; C.object.dimensions
Vector((1.8333334922790527, 1.8333334922790527, 0.0))

&gt;&gt;&gt; # level 2
&gt;&gt;&gt; C.object.dimensions
Vector((1.8333334922790527, 1.8333334922790527, 0.0))

Now set to desired radius
&gt;&gt;&gt; C.object.dimensions = (2, 2, 0)
&gt;&gt;&gt;

Setting dimensions is altering the scale accordingly, values will be around 2 / 1.83333
&gt;&gt;&gt; C.object.scale
Vector((1.0909090042114258, 1.0909090042114258, 1.0))

Apply scale if need be, in which case the object with unit scale will be approx a 2 diameter circle when subsurf is 2.