I'd much prefer some of the time penalties being awarded currently being replaced with penalties that involved giving up track position to one or more cars.
Absolutely. If you're a second a lap quicker than the car in front and there are 10 laps left, but you can't get past, at the moment there's nothing to deter you from abusing track limits to make the pass.
Once you're ahead, however illegitimately, you just pull out a gap of at least 5s. The penalty should, at the very least, put you back behind the car that you passed illegitimately. Ideally it should do more than that.
I suppose the reason for the reluctance to use track position penalties is the difficulty of being consistent, and how to react to unexpected scenarios. What happens, for instance, if you're told to fall behind car x but, before you can comply, car x stops, or runs off the track and loses a dozen positions, or makes a pit stop?
There could also be scenarios where a track position penalty is meaningless. If a midfield runner, for instance, opts for a quirky strategy with a very long final stint, he may be running ahead of some of the front-runners knowing full well that they're going to pass him easily before the end of the race, but he's not really interested in them. What he's hoping to do, on worn tyres, is fend off other midfield runners until the end. In that case, a track position penalty could be served by "letting through" a car that was inevitably going to come through in any case.