fte's sw md3 support was pretty much a case of implementing them because I could, tbh.
As a result, it merely loads it into whatever was easiest for me to render, namely 8bit vertex precision. which sucks.
if I remember correctly, anyway.
it also loads only the first mesh in the file (ie: one external texture).
Also, palettizing tgas generally doesn't give a nice result.
Basically it turns them into .mdl files - hence no tags.

There really is no reason for tags/attachments to be any harder in software, the challenge really is with the rest of the format.
For full support, you'd need to adapt your renderer to be able to cope with 16bit vertex offsets. Not sure how easy that is, especially considering asm generally takes care of that stuff. But I suppose that if you already have interpolation then you've already modified the interesting parts of the code for that anyway.
You'd also need the ability to load external texture files for the skins. This probably involves palette conversions.
You'd also need the ability to render multiple meshes within a single .md3 - presumably just draw each md3 as if it were multiple models (that's also pretty much how the .md3 file format is organised too).
You'll also need the aforementioned setattachment stuff. Tags are the same as gl. They're no different. The renderer itself doesn't care about them at all, you just be able to look up their names to an index, and an index+frame to a matrix, and blend those matricies together to get the resulting matrix. Oh yeah, I'm kinda hoping that your interpolation is based upon frame values set *outside* the renderer itself. If its inside, you'll have no syncronisation between the value of the tag on the parent that the object is attached to.
.