Yes, there's a difference:

- If you share with _only_ one circle, then _only_ people in that circle will see it, ever.

- If you share with one circle _and_ public, then everybody that has circled you will see it in their stream, _and_ every stranger who stumbles across your profile can also see it.

So you must avoid _public if you want to keep it a secret that only that one circle knows.