I have no objection to deprecating (or "withdrawing" if you prefer that term -- I don't) scc and scr, and incorporating hrv and srp into 639-2/B.
I do agree that we should be concerned with perceived precedents. Re the particular case of Spanish,
> The question of course is precedent that we would set. How many other
> countries may ask for the same? In this case we would retire the 639-
> code in favor of the T code, which of course is easier to rationalize
> than introducing a totally new code (for instance, if the Spanish
> countries asked for "esp").
I think we can clearly state that there is not a precedent since 639-2/T uses spa. But for cases such as Armenian, Albanian, etc., it's entirely possible that requests could come. The worst-case scenario is that you get requests for all 22 B cases. I don't expect that would actually happen, but who knows.
(I would expect people maintaining these library systems would rather make a change once rather than a series of separate changes over the span of a couple of years -- something to consider if you think there may be more such changes in the future.)
Have you thought about how things are presented in the code tables? Do you just remove scc and srp everywhere except for the Change History? These code elements should remain stable in terms of their semantic even if their status changes, and that semantic should continue to be documented publicly somehow.