What effect does nesting cache tags have?
Nesting cache tags shouldn't cause any new problems (assuming you've taken into account all the fun problems already caused by cache).

Each cache tag will store it's contents in a database table for easier access. We can illustrate this a bit easier using cache tags with keys.  Take the following example with two cache tags using the keys dog and cat

{% cache using key 'dog' %}
    BUSTER
    {% cache using key 'cat' %} 
        KITTEN
    {% endcache %}
{% endcache %}


When the cache tags are run they store the following:

cat stores the value:

KITTEN


dog stores the value:

BUSTER
KITTEN


The spacing in my example above may not be perfectly accurate but the gist of what content is stored should be. In the case that the page is loaded a second time, when the dog cache tag is found, Craft will pull it's content from the database.  The cat cache tag will never get run, but it doesn't matter, because the full contents of the wrapping dog cache tag have already been retrieved.