In most cases, you can use a factory to prepare the element. But you are right, your example is the standard procedure in many applications where the value options are set and the specifications for the input filter are defined.
The goal for the next major version, or perhaps even sooner, is to find ways to simplify the process without having to extend the standard form elements.
Some additional background/explanation: The way to extend the standard form elements was originally intended to be. Therefore it is very easy in the current versions because in a form the form element manager is used. The form element manager can fetch form elements, fieldsets and forms without registration!
Fetch a Custom Element without Registration
The form element manager allows fetching custom elements without prior registration with the manager.
The following example creates a custom element:
final class ExampleElement extends Laminas\Form\Element
{
// …
}
The form element manager can create these custom elements by the related class name: