Because these DMV's are directly tied into the Performance Dashboards that people use everyday in order to get an updated POINT IN TIME look at their SQL Server and their databases. Secondly, these DMV's just don't have enough cache available for historical performance, that's why. Even if the cache was large enough, as you stated there would probably be performance issues that would result from doing that anyway. However, you can set up a "DMV repository" by just creating specific jobs to warehouse all DMV results in a specific repository at particular intervals that could be stored in msdb or somewhere else like a DBA Utility database for example. Here is a link that will give you a good starting point for doing just that:
"Technology is a weird thing. It brings you great gifts with one hand, and it stabs you in the back with the other. ...:-D"