I too have noticed this as well. We created a control that was based off the ContentView control. When overriding the ItemListTempaltePath, we are passing in an internal template as the default. When adding the control to a page and setting the value of the property, it ignores the external template specified and uses the internal template. I even stepped through the code and noticed that the ItemListTemplate was being called and instatiated before the ItemListTemplatePath was set via the properties assigned to via the UI. I checked the following, base.ChildControlsCreated, and it was false when the ItemListTemplate was called and instantiated.
What I finally did to get this to work was to set the ItemListTemplate to null when the ItemListTemplatePath is set.
.ItemListTemplatePath = value;
This will force the ItemListTemplate to recreate itself using the ItemListTemplatePath value.
I looked over a few other threads that were related to this and none of them seemed to have helped. Things I also tried:
1) Set the ItemListTemplatePath and ItemListTemplatePath under SelectedPresentationMode settings - No luck
2) Removed the control and added a new instance. Set the properties before saving the page - This seemed to have worked for a bit, but a fellow colleague edited the control, not changing the template info, saved the page and now it shows fine for preview and edit but not live. (workflow off)
3) I tried to specify a template, ascx file, that was not in the file system and this did throw an error, changed it back to a control that exists and still displays internal template.
Just for your information, we are running 3.7SP3.