The USFLIMIT and TFILIMIT come into play if you have activated any feature that will keep a TBF alive for some time, even when there is no data to be transmitted.
A typical example of this is, extended UL TBF mode, whereby an UL TBF is kept alive even when the MS has finished sending its RLC blocks. In this case, the TBF is kept alive until the expiry of the timer ULDELAY. Keeping the TBF alive means that the TBF will reserve a USF and TFI. This is undesirable, because the reserved USF and TFI cannot be used to set up new TBFs which may even have data to transmit. (remember the USFs and TFIs are limited). In light of this, you specify a certain buffer of USFs (USFLIMIT) and TFIs (TFILIMIT), such that when the number of free USFs/TFIs are less than these limits, then active TBFs are released immediately they finish transmitting their data.
In your case (USFLIMIT=2), it means whenever the number of free USFs is less than 2, then any UL TBF will be released immediately after data transfer, ie, the TBF will not be kept alive.
If you set it to 0, then you can have more TBF setup failures, because you may run out of USFs. On the other hand, if you set it too high, you will have many early TBF releases, which is also undesirable.
I hope this makes sense to you.