Exploring this using InputForm one discovers that 
Circle[] 
evaluates to 
Circle[{0, 0}]
so, when you do the List->f replacement this becomes
Circle[f[0, 0]]
however, the first argument of Circle must be a coordinate list pair.  Hence, the error message.  If f[0,0] were to evaluate to a coordinate list pair then presumably the error would not occur.