hmm, maybe you shouuld try to rejuvenate your own social life and get out more. i wouldn't put up with the 'i'll stick around for a few days then naff off' routine as that says to me he is only turning up for a treat when he fancies it.
as said, is it possible he has met someone else, tried to distance himself from you as a little test, you have given him some freedom and he has the best of both worlds ?
you really need to talk this through with him as you will not feel any better if this carries on at his convenience.