This is primarily a hold-over from the DNN 3/ASP.NET 1.1 days.
IMO - there are no cons in removing the Abstract/MustInherit modifier. But there are not really any pros either.
Theoretically - removing the modifier removes the ability to "instantiate" the class declared in the "code-behind". That is all. In reality there are very few (if not no) reasons why you would instantiate the code behind class - and not want the inherited "ascx" version of the class. Remember that the ascx "inherits" or sub-classes the code behind, so if you instantiated the code behind directly you would get none of the html layout of the control - just the code aspects.
In DNN4/ASP.NET 2, we use the code-beside model a lot - if you use that model the code file is declared as a Partial class and is combined with the ascx file - rather than the ascx file inheriting from the code file.