Thinking inside the circle
Pre-rule-change answer:

C# / ECMAScript 6 - 12

r=&gt;r


Because overlapping rectangles are allowed, we need at most r rectangles.

Proof:



With a circle of radius 10, it can be filled with 10 rectangles. Each rectangle has been highlighted in a distinct colour.



Older pre-rule-change answer:

C# / ECMAScript 6 - 0.444

r=&gt;1


I believe this meets all the rules as of the time of this writing.

It evaluates to the number of rectangles required to fill a circle, rasterized with this algorithm:

inCircle = max(|x|,|y|) &lt;= radius


This algorithm doesn't yield very high-quality results, but it can still be useful. The popular video game Minecraft uses this algorithm.