uint32_t data = 0xFFFFFFFF;
    Serial.println(data, BIN);
    data = 0xFFFFFFFF;
    bitClear(data, 30);
    Serial.println(data, BIN);
    data = 0xFFFFFFFF;
    bitClear(data, 31);
    Serial.println(data, BIN);

On my mega outputs:

    11111111111111111111111111111111
    10111111111111111111111111111111
    1111111111111111111111111111111

Are you sure you aren't mistaking the fact that println doesn't print leading 0's for the number being nothing but 1's? Try printing as hex, then all the numbers will be the same width: 

    FFFFFFFF
    BFFFFFFF
    7FFFFFFF