The code for GDALReprojectImage() looks as follows, and if no src or dst wkt values are passed in the dst_wkt will be set to the same as the source regardless of whether the destination dataset has a valid and differening srs set on it.
GDALReprojectImage( GDALDatasetH hSrcDS, const char *pszSrcWKT,
GDALDatasetH hDstDS, const char *pszDstWKT,
GDALResampleAlg eResampleAlg,
double dfWarpMemoryLimit,
double dfMaxError,
GDALProgressFunc pfnProgress, void *pProgressArg,
GDALWarpOptions *psOptions )
{
GDALWarpOptions *psWOptions;
/* -------------------------------------------------------------------- */
/* Default a few parameters. */
/* -------------------------------------------------------------------- */
if( pszSrcWKT == NULL )
pszSrcWKT = GDALGetProjectionRef( hSrcDS );
if( pszDstWKT == NULL )
pszDstWKT = pszSrcWKT;