As has been pointed out, underlining by macro is at best inconvenient in filled text. Thus it was proposed that underline, and perhaps strike-through might be a groff primitive like .bd. All these capabilities may be understood as ways to decorate individual characters. There are other such things one might want to do, such as strike-through with /.
Maybe we need a more general facility, in terms of which a whole array of effects can be defined. One possibility is a primitive, say .decorate m, which applies macro m to every text character until .decorate with no argument. Several decorations could be applied to every character. The proposal raises some questions. (1) Does white space get decorated? (2) How about punctuation? (3) Do multiple decorates terminate together, or do they nest? One can come up with answers to these quesions, but the first issue is whether this is an idea worth pursuing. Doug