I posted this a long time ago when the "no-used games" thing began to surface in the forums and I still think is the way best to go if they are to do it.
If, say, you dropped that Halo 5 at Gamestop and I picked it up used, but you totally forgot to deactivate it. When I get home, I will have to go online (or through the phone, so that would actually end the "internet-only" activation debate, call MSFT, get a code from a phone rep, input said code, play H5 while having the disc in the console) and activate it. This, in turn, will automatically deactivate it on your console, so you cannot play the game even though you have it installed at your HDD (disc required). Next time you want to play Halo 5, you either buy it used (and activate the new code on your console) or get it new (only need the disc for validation and input the new code on your already saved H5 data and play).
But what if I go to my friend's house and want to play my H5 game? In this case, you bring your Halo 5 copy, sign in with your gamertag in his console, and it will automatically know which games you are entitled to play and play H5.
But, what if I want to LEND the game to my friend to play for a while? In this case, the game will go into a demo mode (say, 2 hours top) so he can try it, and if he wants to continue playing, he can either buy a game code online or through the phone. This said code will be cheap (say, $3-$5 and it will give you 24 hours to play, like a rental).