I have about 10 years experience (as a user) with PVR HTPC, starting with MythTV about 10 years ago, changing to MediaPortal in 2005, testing For The Record several times since 2008 in combination with Mediaportal. I started looking at XBMC when there was reports of PVR development in 2010. I made the change to XBMC frontend with For The Record + Argus backend this year.
First thing that comes to mind about XBMC is "we do everything ourself, and all is done inside the frontend", very userfriendly, but also limiting, fortunatly you have the advanced option of digging into config files.
For the sake of PVR development I think you have to let that go of the done inhouse approach, PVR has to be an "outside" job. There are some great backends out there that does an excellent job, some are more advanced than others, some are easier to setup than others. XBMC PVR capability should be limited by the options of the backend, not the other way around.
I'm a big fan of FTR (argus), it's not an easy task to setup (from xbmc pov), but not bad compared to several other backends. FTR is based around EPG and scheduling, with very advanced options available, you will never miss your favorite show again, FTR does all a PVR needs to do, but it's a "server" type of program, it has managment console to handle all the advanced options. What it lacks is a frontend GUI that take advantage of it's great potential (well you do have webinterface, android app, IM-BOT etc). This is where XBMC comes inn, I hope....
The current PVR implementation of XBMC suffer from it's "we have to do everything ourself, inhouse" approach. It has a set hardcoded base of functions and the PVR backends are limited by those, rather than XBMC setting the limitations, the PVR backend plugin should set those. Like why does XBMC have it's own EPG database, channel manager, scheduling options etc ? This is the job of backend. Right now I have FTR filling a database with EPG data, then this is imported into XBMC's own database, doesn't make sense.
IMO XBMC should not focus on creating pvr functions inhouse (like timeshifting etc), this is the job for backend, if your backend doesn't support it, though luck, get a better backend or live without it. XBMC focus should be to have the GUI available to take advantage off all the options backends provide, then it's up to pvr plugins to choose what gui opptions to support.
I may be way off here, I'm not a programmer.
With Marcels latest PVR build and FTR(argus) backend I got a setup working fairly nice, I got excellent backend options available via web and phone app, and live-tv works pretty nice. Currently there are a few tings that is frustrating (and I was used to from mediaportal and mythfrontend)
1. I have yet to find out how to sort channels, seems like a big battle between xbmc and the backend, I have it sorted perfectly at both ends, but when you connect them it gets messed up and all channels are sortet by alphabet.
2. Timeshifting, I already have this in the backend, and I can pause live-tv, but I cannot fastforward or go back to see that goal one more time.
3. Remote control, this is not really limited to PVR but XBMC in general. IMO the remote option of xbmc is really messed up, so many times you need 2 buttons for one function, and different skins handle buttons differntly. The most frustrating being backspace and escape, 2 buttons for 1 function, sometimes you have to hit backspace to go back one step, other times you have to use Esc...