No termino de entender del todo el problema, pero si defines FLAC__StreamEncoderPrivate como una estructura con menos campos...
Código:
calloc(1, sizeof(FLAC__StreamEncoderPrivate));
reservará espacio para esa estructura de menos campos...
De todas formas, una definición en C puede estar en una cabecera.h o en un .c. La diferencia está que si la defines en el .c o .cpp, solo sera reconocida en ese archivo y no será exportable a otros módulos, al menos en principio (hay trucos...). Esto quiere decir que esa definición que hechas en falta en una libreria.h tu la puedes predefinir, al traducirla, donde te venga bien, al fin y al cabo, las librerías.h no son otra cosa que archivos de declaración o predefinición.
Por otro lado no entiendo el empeño de traducir toda la dll, si al final estará compilada en una dll. ¿No es mas fácil y práctico hacer las llamadas oportunas desde delphi aunque la libreria original este en c++?. En fin, supongo que tus motivos tendrás.
Saludos.