You can, of course, write a helper function 
menuItem : List (Html msg) -> Html msg
menuItem children =
div [ class "menu-item" ] children
Good question. You can’t even make copies, because the VirtualDom.Node is an opaque type. The type is exposed, but the single constructor is not! This is used by libraries to keep data hidden, in order to abstract away an implementation.
For example:
module Foo exposing (Bar, Beep(..)) -- Bar's type is exposed, while Beep's type and constructors are exposed
type Bar = Bar String
type Beep = Beep Int
Here, Bar is opaque, because no other module can create or “open” the Bar value. (Usually, these kind of types will contain more complex types than just a String or Int)