1. Localize the name can be done with Localizer T : In your view, you should use the name of the field surrounded by T("") so that the designer/developper can add .po file to manage the translation in the Theme.
2. Some Fields have DefinitionTemplate that can be used to add Settings between the Field and the ContentType (e.g : Contrib.Taxonomies). You could manage the validation with this.
3. Same way : You can specify a default value in a DefinitionTemplate and add the property in view model to initialize the field.
4. I think it would be very interesting to make Fields that allow to create HTML 5 Markup and Attributes (and use Modernizer to fallback when attributes are not managed by the browser).