I know these internals aren't part of the public API, but they should probably be held in a consistant state regardless.
extern int s2n_stuffer_init(struct s2n_stuffer *stuffer, struct s2n_blob *in);
define s2n_stuffer_init_text( stuffer, text, len, err ) s2n_stuffer_init( (stuffer), (uint8_t *) (text), (len), (err) )
The extra 'err' parameter shouldn't be there? I think you rely on the return value of the function in these cases, and not a returned parameter.