Draft: draft-ietf-rtcweb-jsep

Commentary: The pool is only used in the first offer / answer exchange . After applying a local description , the pool size is frozen and changing the ICE servers will not result in new candidates being pooled . After an answer is applied , any leftover candidates are discarded . This only happens when applying an answer so that candidates are n't prematurely discarded for use cases that involve pranswer , or multiple offers . 
 I can live with this as is . Want to read again if we end up making changes to address EKR comments 
 Updated PR and its description based on our discussion .
Paragraph (version A):
When setLocalDescription is eventually called, and the browser goes
to gather the needed ICE candidates, it SHOULD start by checking if
any candidates are available in the pool.  If there are candidates in
the pool, they SHOULD be handed to the application immediately via
the ICE candidate event.  If the pool becomes depleted, either
because a larger-than-expected number of ICE components is used, or
because the pool has not had enough time to gather candidates, the
remaining candidates are gathered as usual.
Paragraph (version B):
When setLocalDescription is eventually called, and the browser goes
to gather the needed ICE candidates, it SHOULD start by checking if
any candidates are available in the pool.  If there are candidates in
the pool, they SHOULD be handed to the application immediately via
the ICE candidate event.  If the pool becomes depleted, either
because a larger-than-expected number of ICE components is used, or
because the pool has not had enough time to gather candidates, the
remaining candidates are gathered as usual.  This only occurs for the
first offer/answer exchange, after which the candidate pool is
emptied and no longer used.
Paragraph (version A):
Any changes to the STUN/TURN servers to use affect the next
gathering phase.  If an ICE gathering phase has already started or
completed, the 'needs-ice-restart' bit mentioned in sec.ice-
gather-overview will be set.  This will cause the next call to
createOffer to generate new ICE credentials, for the purpose of
forcing an ICE restart and kicking off a new gathering phase, in
which the new servers will be used.  If the ICE candidate pool has
a nonzero size, any existing candidates will be discarded, and new
candidates will be gathered from the new servers.
Paragraph (version B):
Any changes to the STUN/TURN servers to use affect the next
gathering phase.  If an ICE gathering phase has already started or
completed, the 'needs-ice-restart' bit mentioned in sec.ice-
gather-overview will be set.  This will cause the next call to
createOffer to generate new ICE credentials, for the purpose of
forcing an ICE restart and kicking off a new gathering phase, in
which the new servers will be used.  If the ICE candidate pool has
a nonzero size, and a local description has not yet been applied,
any existing candidates will be discarded, and new candidates will
be gathered from the new servers.
Paragraph (version A):
Any changes to the ICE candidate pool size take effect
immediately; if increased, additional candidates are pre-gathered;
if decreased, the now-superfluous candidates are discarded.
Paragraph (version B):
The ICE candidate pool size MUST NOT be changed after applying a
local description.  If a local description has not yet been
applied, any changes to the ICE candidate pool size take effect
immediately; if increased, additional candidates are pre-gathered;
if decreased, the now-superfluous candidates are discarded.
Paragraph (version B):
If the description is of type "answer", and there are still remaining
candidates in the ICE candidate pool, discard them.