very true, but i've been reading over the RFCs on this, and it
seems that FreeSWITCH isn't doing anything incorrectly.
in RFC3263 (section 4), when talking about client usage of SRV:
The procedures here MUST be done exactly once per transaction, where transaction is as defined in [1].
[1] being RFC3261
in RFC3261 (section 8.1.3.5), when talking about 4xx responses:
In all of the above cases, the request is retried by creating a new
request with the appropriate modifications. This new request
constitutes a new transaction and SHOULD have the same value of the
Call-ID, To, and From of the previous request, but the CSeq should
contain a new sequence number that is one higher than the previous.