I have a firm rule that I don't use Shared Facts because they are usually not accepted by other genealogy software. I do break my "firm" rule in the sense of improving the content of my reports. For example, I share the standard marriage fact with each of the spouses so that the marriage will show up as an individual fact in each spouses' individual timeline. If this "individual marriage fact" is lost on data transfer, then no harm is done because the true marriage fact is still there.
That being said, I don't think I would share the Residence fact in the manner you describe, even if I didn't have an aversion to Shared Facts. You state the reasons very well. Using Shared Facts in this manner simply doesn't meet your needs because dates and places are the same for every instance of a Shared Fact and your use case requires different dates for some of the instances. Shared Facts simply don't work that way.
In some ways this reminds me of some experiments I did when the Shard Facts feature first came out. I didn't yet realize that Shared Facts didn't transfer well to other software and I was quite enamored of the idea behind Shared Facts. So played around with sharing Census facts. What I discovered was that they didn't save me any time. I like the way my Census facts look in reports to be customized for each individual. I found that doing such customization with Shared Facts took longer than just giving each family member their own individual Census fact. So I went that way instead of using Shared Facts for entering census data. I'm really glad I did.
Finally, the whole notion of the word Witness as used with respect to Shared Facts makes no sense to me. I simply don't know what it's supposed to mean. I do realize that it's just a generic Role name that doesn't particularly have to mean anything. But to me Role names should such be such things as Flower Girl or Maid of Honor for a wedding, or Midwife for a birth, or Pallbearer for a funeral - things like that. Then it's the Role name that get's shared, not the fact itself. The Shared Role then inherits the date, place, and source from the owning fact. I think most people think about RM's Shared Facts differently than that, but that's what makes sense to me.
In any case, when I was trying to use RM's new Shared Facts feature for entering census data, for the life of me I couldn't figure out what the name of the Role should be. That should have been a clue to me that maybe using Shared Facts for census wasn't going to make me very happy. When I think of Shared Facts rather than of Shared Roles, I think in terms of making an exact copy of the fact. Indeed, one of the most wished for items in RM is probably the ability to copy a fact from one person to another. In theory, RM's Shared Facts feature should so that very thing, except that it seems to me that it doesn't because it's a Role that gets shared and not the Fact itself. You can always just share the Witness Role and give the Witness Role the same sentence template as the main fact except replace the [Person] variable with the [ThisPerson] variable in the Role sentence. But again the whole Witness name for a Role just feels to me like fingernails on a chalkboard whereas real Role names are fine. So I would always try to come up with a meaningful Role name other than Witness if I were making heavy use of Shared Facts.
Sorry to have rambled so much, but I don't think RM's Shared Facts meet your needs for Residence when not all of the people really share the same residence at all times.