I think it might be better to add an optional argument to `cookiejar_from_dict` rather than have a new function that duplicates almost all the logic. Something like:

```python
def cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True):
    """Returns a CookieJar from a key/value dictionary.

    :param cookie_dict: Dict of key/values to insert into CookieJar.
    :param cookiejar: (optional) A cookiejar to add the cookies to.
    :param overwrite: (optional) If False, will not replace cookies already
                                 in the jar with new ones.
    """
    if cookiejar is None:
        cookiejar = RequestsCookieJar()

    if cookie_dict is not None:
        names = [cookie.name for cookie in cookiejar]

        for name in cookie_dict:
            if overwrite or (name not in names):
                cookiejar.set_cookie(create_cookie(name, cookie_dict[name]))

    return cookiejar
```