When gdal_translate is used with both -gcp and -outsize options the resulting image is no loger bounded with the appropriate geo-refed co-ordinates.
gdal_translate creates a sampled image but still used the gcp's based on the original image.
it is felt that gdal_translate should be able to perform both -gcp and -outsize options in one command. Thus gdal_translate would need to evaluate and modify the -gcp's given by the user to new values based on the -outsize option.
The result should be a geo-referenced and sampled image in one step.
Currently the fix is to use three steps.
1. gdal_translate with -gcp option
2. gdalwarp to set upper left, lower left, upper right, lower right pixel geo-values based on GCP's
3. gdal_translate again using -outsize option to get a sampled image from the geo-refed image.
let me know if more information is required