Windows Phone does not have a dual pricing model. So you cannot have a paid app for Windows Phone 7 while having a free app in Windows Phone 8. I do currently have an app that targets Windows Phone 7 but adds Windows Phone 8 functionality like the LongListSeletor and In App Purchase. I have two application projects in my solution. One targeting Phone 7 and one targeting Phone 8. They both use the same code files by adding them as link. My Phone 8 project has a "WP8" compile symbol defined in both release and debug mode. When I want to do in app purchase (for me it is to remove ads) I do so like
#if WP8
// Do some logic here
#endif
This allows for the same code across both platforms, only one app in the store (one targeting phone 7 and one phone 8). I agree that a free app is better than a paid with trial app, but if you want it to be paid for Phone 7, it will be paid for Phone 8. This is one of the biggest limitations of the two platforms (in my mind).
This is the exact thing I wanted to do with an app. I still have not figured out how I will do this.