This is incredibly rude and seems like a pattern on the part of the SIL. If the friend really did call and do the "hey I'm headed into town this weekend, can I stay with you?" thing (it's happened to me), then the SIL is in a bind too.
I would love to tell you to say "No", but in all reality, I would probably suck-it-up and say "sure" and hope that the uninvited guest has the good grace to bring a gift.
This actually happened to my SIL at my shower. A very close friend of mine's daughter surprised her with a visit the day before my shower. She called my SIL and asked if it was okay to bring her, SIL said "yes" and the daughter went out that night with my friend and bought something little to bring, which was very sweet. We actually kept in touch after meeting, so you just never know. Similar situation at my sister's shower when my aunt (who was invited) brought my younger cousin who decided to visit for the weekend. You can do what you can do-
Just don't do anything that will make someone else the center of attention on the day of the shower- SIL is likely not happy about someone else having the spotlight (hence the bring-a-friend tactic x 2) and will be mopey if she's by herself.
Have fun and congratulations!