Did you create a 1D image? if so, you can't specified the CL_MEM_USE_HOST_PTR, CL_MEM_COPY_HOST_PTR or CL_MEM_ALLOC_HOST_PTR.
It looks like buffer is in the image descriptor. See section 184.108.40.206of the spec.
Images are either read/write only in the kernel - it enables more efficient memory access as there's no need for coherent cache/snooping across many devices.
The host flags are separate and they're really just a hint to the driver as to how you expect to use the data, it's implementation specific as to whether it really makes any difference (it could optimise memory transfers/avoid cache invalidation in the various cases). It would be up to the vendor documentation to list any specifics.