As mentioned earlier, pixels next to the high-intensity pixel take non-zero values after JPG-compression because JPEG is a lossy algorithm. In fact, JPEG-compression discards information precisely in image regions with strong gradient.
As for your second question: your pixels are blue because of an Opencv quirk: color channels are not stored in R, G, B order, but in B, G, R order:
For color images, the channel ordering is normally Blue, Green, Red
Source: http://docs.opencv.org/modules/core/doc/drawing_functions.html?highlight=green
(this is one of those things that make life miserable for the Opencv programmer)