Is saying "an obsolete remnant" redundant?
Solution 1:
If we take remnant to mean a small part of something that is left over, obsolete and old need not be redundant. Even if obsolete and old are taken to be part of the connotations of the word, they would serve as intensifiers of the meaning.
Solution 2:
First, let's get the basics clear.
Obsolete: no longer used; out of date
Remnant: a part or quantity that is left after the greater part has been used, removed, or destroyed
Old: old
So, "obsolete" and "old" are not redundant in the phrases you have provided.
As for the bonus question, you could try:
- Vestige
- Remainder
- Leftover
- Remains
(The choice of the synonym - for the bonus question - would depend entirely upon the context of the statement where it is to be used.)
Solution 3:
As mentioned in a previous answer, remnant (a remaining portion) does not denote old or obsolete (old, disused).
Regarding part 2 of the question, the previously-suggested terms vestige, remainder, redundant, and superfluous are all very well, but the "proper term" for obsolete bits of software left lying about in a project is cruft, "Redundant, old or improperly written code, especially that which accumulates over time; clutter".