Получилось так, спасибо за подсказку про `prototype`:

```js
/*
 * Block to determine how the user interacts with the page.
 * Distinguishes interaction with a keyboard or mouse/finger.
 */
BEM.DOM.decl({ block: 'i-ua', modName: 'interaction', modVal: 'yes' }, {

    /**
     * @private
     */
    _onPointer: function() {
        this.domElem.attr('data-interaction', 'pointer');

        this.__self
            .liveUnbindFrom('mousedown', this._onPointer)
            .liveBindTo('keydown', this._onKeyboard);
    },

    /**
     * @private
     */
    _onKeyboard: function() {
        this.domElem.attr('data-interaction', 'keyboard');
        
        this.__self
            .liveUnbindFrom('keydown', this._onKeyboard)
            .liveBindTo('mousedown', this._onPointer);
    }

}, {

    live: function() {
        this
            .liveBindTo('mousedown', this.prototype._onPointer)
            .liveBindTo('keydown', this.prototype._onKeyboard);
    }

});
```