Inicializador uniforme usado no argumento padrão para const const

Essa sintaxe legal é c ++ 0x?

class A
{
public:
    void some_function( const std::set<std::string> &options = {} );
    // note that this is legal, which binds the const reference to a temporary:
    void some_function( const std::set<std::string> &options = std::set<std::string>() );
}

Por esse motivo, encontrei um bug no GCC 4.

O erro que recebo é:

error: expressão primária esperada antes do token '{'

que é ... lógico ... se fosse ilegal.

ATUALIZAR Como o @Kerrek ilustrou, isso ocorre no C ++ 03 simples, com agregados e a sintaxe antiga de inicialização entre chaves. Por que isso não é possível? É proibido no Padrão? Ou os compiladores estão com defeito? Ou isso é um descuido? Não vejo nenhum problema sério ao permitir isso como uma alternativa para chamar explicitamente o construto

questionAnswers(1)

yourAnswerToTheQuestion