How can I force Visualforce to include empty attributes which I have specified?

Here is another way to do it w/o javascript:

Set the value to a VisualForce function that evaluates to nothing:

<apex:page standardController="Contact" >
<apex:form>
    <select required="required">
        <option value="{!IF(1=1,'','')}">--</option>
        <option value="1">Option 1</option>
        <option value="2">Option 2</option>
    </select>
    <apex:commandButton value="Test Submit" action="{!save}" />
</apex:form>

It will send the value attribute to the browser: HTML in browser

The browser will require it now:

Required on form submit