Ofcom allow it for mobile contracts too they'll not change anything. As long as its in the terms of conditions when you sign up you are agreeing to it when accepting the contractOfcom will put a stop to it imo.
As for giffgaff / o2, giffgaff will buy the network capacity (calls / data) etc from o2, but o2 will have no say in what giffgaff charge customers, if giffgaff wanted to give it away free, nothing o2 could do about that, as long as they get paid what was agreed.