Although there is something to be said for not having to maintain the date table, you need to weigh the cost.
1. Update the date table once per year. You can certainly create code to do that. You can even automate the process so that the first person who opens the app in November, generates the records for the upcoming year.
2. Every person who runs this query has to regenerate the same records over and over again. Depending on the application, different users could do this dozens of times per day. This leads to bloat and forces the user to either use compact on close (not usually recommended) or remember to do it manually. And then there is the issue of overhead when you have to generate more than a couple of hundred records in the date table.