Почему имя функции JS конфликтует с идентификатором элемента?

У меня есть две почти одинаковые простые JS-скрипты, вызывающие функцию при изменении выбора. Имя функции совпадает с идентификатором выбора в обоих случаях, но по какой-то причине первая скрипка работает просто отлично, а вторая не работает с ошибкой JavaScriptis not a function:

http://jsfiddle.net/AZkfy/7/ - отлично работает в FF9 (Linux), Chromium 16 (Linux), IE8 (Windows):

<script>
    function border(border) { alert(border); }
</script>

<select id='border' name='border' onchange='border(this.value)'>
    <option value='foo'>foo</option>
    <option value='bar'>bar</option>
</select>

а также

http://jsfiddle.net/cYVzk/ - происходит сбой в FF9 (Linux), Chromium 16 (Linux), IE8 (Windows):

<script>
    function border(border) { alert(border); }
</script>

<form>
<select id='border' name='border' onchange='border(this.value)'>
    <option value='foo'>foo</option>
    <option value='bar'>bar</option>
</select>
</form>

Первый Я не могу понять, почему первый работает нормально, а второй - нет.

второй - существуют ли какие-либо спецификации или ограничения JS в отношении конфликтующих имен функций JS и идентификатора элемента?

Ответы на вопрос(3)

Ваш ответ на вопрос