To give my contribution on this topic:
I have made some PIC projects before, mainly with the 16F628A because this was 'the' device for the program PICBasic I used to program my devices with.
It also suported the 'big' 16F877(A) but other than those two, the program was very restricted for device selection.
Now, a few years later, at my work I was asked to design a device with a PIC Controller. My boss knew this was a hobby of me.
So I started to look at my old, dusty PICBasic program... Hmmm... No good for the device I wanted to use.
Since I have no grounded understanding of the C language -unfortunately- I came out with Assembler.
This would give me no restrictions whatsoever of which device I should use since it's the ground-level language of the whole PIC family.
Anyway, looked for some tutorials and most of them coverd the mid-range 16F877 or older devices.
I started looking into the assembler language with these PIC's but what a struggle.....
Shadow registers, banks, etc...
Then I found the very great and usefull tutorials from Gooligum.
And especially the Enhanced Mid-Range section... What a relief!
No more talking about shadow registers, read-write-modify problem anymore!
Since I'm stared with these Enhanced mid-rang tutorials, life is on the bright side!
Although I'm still learning and have TONS of questions, mainly specific for my project, I'm really getting the feeling of it!
So I think, if I may give some advice to newbies like myself, don't look back (yet!) to the older processors, start with a good tutorial course for the Enhanced Mid-Range devices!
Even the smallest one, the 12F1501 is capable of a lot more you would think of!