When a recurring event takes place on the 31st of the month, why do I not see it on the end of the months with 30 days?
That is because they are not the same date, so if you have set it for 31st, it can’t also be on 30th. Just like if you set it for 1st it will not be on 5th!
Change the recurrence to the last day of the month. As you can see in the following example it automatically selects the last day, whether that is 30th, 31st or even 29th as in February next year.