Thanks iKlsR, I created a Greasemonkey script based on your code, which inserts a new button automatically:

    // ==UserScript==
    // @name        Add <kbd> Button to StackExchange Toolbar
    // @namespace   http://blender.org
    // @include     *.stackexchange.com/*
    // @version     1
    // @grant       none
    // ==/UserScript==
    
    var toolbar;
    function toolbar_wait() {
        toolbar = document.getElementById('wmd-button-row');
        if (toolbar == null) {
            window.setTimeout(toolbar_wait, 500);
        } else {
            toolbar_add();
        }
    }
    toolbar_wait();
    
    function insert_kbd()
    {
        var txta = document.getElementById('wmd-input');
        if (txta.selectionStart == null) return;
        var chars = txta.value.split("");
        chars.splice(txta.selectionStart, 0, '<kbd>');
        chars.splice(txta.selectionEnd + 1, 0, '</kbd>');
        txta.value = chars.join("");
        toolbar_update();
    }
    
    function toolbar_add() {
        
        var style = document.createElement('style');
        style.setAttribute('type', 'text/css');
        style.innerHTML = '#wmd-kbd-button:hover {background-color: #deedff;}';
        document.body.appendChild(style);
        
        var li = document.createElement('li');
        li.onclick = insert_kbd;
        li.setAttribute('style', 'font-size: 9pt; left: 400px;');
        li.setAttribute('title', 'Keyboard Shortcut <kbd>')
        li.setAttribute('id', 'wmd-kbd-button')
        toolbar.appendChild(li);
        li.className = 'wmd-button';
        
        var span = document.createElement('span');
        span.innerHTML = 'kbd';
        span.setAttribute('style', 'background-image:none;');
        li.appendChild(span);
    }
    
    function toolbar_update() {
    
        var element = document.getElementById('wmd-input');
        
        var keyboardEvent = document.createEvent("KeyboardEvent");
        var initMethod = typeof keyboardEvent.initKeyboardEvent !== 'undefined' ? "initKeyboardEvent" : "initKeyEvent";
    
    
        keyboardEvent[initMethod](
                       "keydown", // event type : keydown, keyup, keypress
                        true, // bubbles
                        true, // cancelable
                        window, // viewArg: should be window
                        false, // ctrlKeyArg
                        false, // altKeyArg
                        false, // shiftKeyArg
                        false, // metaKeyArg
                        17, // keyCodeArg : unsigned long the virtual key code, else 0
                        0 // charCodeArgs : unsigned long the Unicode character associated with the depressed key, else 0
        );
        element.dispatchEvent(keyboardEvent);
        
    }

Install: http://userscripts.org/scripts/show/486617

I added a hack to simulate a keydown event (ctrl) to make the live markdown preview update. Tested and working in Firefox 28.