What if you had different MMR for each position?
So you'd get a different MMR/rank for top, mid, jungle, bot, and support. I feel like this can help the autofill situation better, as autofilled supports will be matched with people with their support play level. If someone is bronze at support but gold at mid, and queue as mid/top but autofilled into support, they'll be matched with bronze players. This would mean more fair matchmaking. It would still suck to be autofilled, but it would also mean you wouldn't automatically lose because you get your worst role, and you'll be able to pull your own weight more reliably.
Trading positions wouldn't really matter since the game is pretty good at detecting where people are going and what they're playing as. You'd gain/lose MMR/LP based on what role you played as. So in the above example, if the player trades for a mid, then they'll gain minimal MMR and LP for winning vs bronze players as a gold player.
I don't know about other people, but this would certainly motivate me to play other roles more. I suck ass as ADC, but with this system in place I get autofilled to bot, I wouldn't just trade immediately, since I know that everyone else is just as bad.