Descobri a causa do problema!
O arquivo fonte do sequence.h se encontra em: http://www.wk.go.dlr.de/~wagner/Corba/CorbaAPI/projects/mico/sequence.h.html
Nesse arquivo, a função get_buffer é implementada dessa forma:
const T* get_buffer () const
{
assert (vec.size() > 0);
return &vec[0];
}
Ela verifica se o tamanho do vetor é maior que zero, porque, se for vazio, não é correto referenciar a posição 0 do vetor.
Por isso, antes de chamar get_buffer para obter o vetor, é preciso verificar se o tamanho da seqüência é zero, através de uma chamada a length().
Descobri isso porque em uma função minha dava pau, e em outra não. quando comecei a comparar as duas, percebi essa diferença.
Flávia