As the [Attribute](http://yuilibrary.com/yui/docs/attribute/) docs state

> The only reason you should need to disable lazyAdd is if your setter is doing more than normalizing the attribute value. For example if your setter is storing some other state, in this._someProp, which is being used by other parts of your component. In this case, since you're not getting or setting the attribute to access this._someProp, it won't get set up lazily, until someone actually calls get or set for the related attribute.

This applies to `labelHTML` because its setter also updates the `label` ATTR since they need to be in-sync.  By invoking this ATTR's setter upon instantiation, it ensures that any value for `labelHTML` that is passed in with the configuration object will (almost) immediately update the `label` ATTR value as well.

This snippet demonstrates the difference.

    var button = new Y.Button({
        srcNode: Y.Node.create('<button>Some old value</button>'),
        labelHTML: 'Some new value'
    }).render();

    // With lazyAdd = true
    console.log(button.get('label')); // Some old value
    console.log(button.get('labelHTML')); // Some new value

    // With lazyAdd = false
    console.log(button.get('label')); // Some new value
    console.log(button.get('labelHTML')); // Some new value