No. Suppose WIDTH*HEIGHT=10. Then data[imageSize] = data+10, which is one byte too far on. Congratulations on finding out how easy it is to do a buffer overrun and corrupt application memory! In the original code the final value of data would be data+imageSize because of the post-increment, but nothing would have been written to that memory location. Let's dry run that to WIDTH*HEIGHT=3 so you can see what's going on:

Enter the for loop, let's say data=1000. imageSize=3.
*(data++)=fillValue; // Post-increment data, which means data++ evaluates to 1000 but data now contains 1001. Copy fillValue to 1000.
Decrement imageSize. Must be pre-decrement, which means that the value of --imageSize is what imageSize contains AFTER the decrement (contrast with post-increment). So imageSize=2, which taken as boolean is TRUE, so loop.
*(data++)=fillValue; // data++ = 1001; data contains 1002. Copy fillValue to 1001.
Decrement imageSize. imageSize=1, which taken as boolean is TRUE, so loop.
*(data++)=fillValue; // data++ = 1002; data contains 1003. Copy fillValue to 1002.
Decrement imageSize. imageSize=0, which taken as boolean is FALSE, so the loop ends.
So as you can see data now contains 1003, but the last memory location written to was 1002.

Yes, ++ increments by one, but watch out: it increments pointers by one of what it's pointing to. Which makes sense; if you have struct s { lots of stuff } *p; p=malloc(10*sizeof(struct s)); then you would want p++ to point to the NEXT struct s, not to memory location (void*)(p)+1. So if p=1000 and sizeof(struct s) is 20 then p++=1020, not 1001.

Without further information on the image format in question there's no way I can answer the question about pixel intensity values. All the loop above does is to block fill the entire image data with the same numeric value, which is likely a fairly useless example, and I'd say it's going a bit far to call it an "example of manipulating the image's data". A proper example might be to change all red pixels in a particular area to blue; it would give you some idea of what constitutes a red pixel, how to determine where a pixel at a particular x,y coordinate is in memory, and how to set that pixel to blue.