Actually their terms say you are not allowed to store the images locally except to pre-fetch for performance concerns. So you pretty much aren't allowed to fetch and store to get around their usage cap. I am no lawyer but I wouldn't count on it being allowed.
On the other hand, the 1000 upper limit is for unique images per viewer per day. If your viewers are looking at the same image 1000 times it doesn't affect quota, or if one user views 500 images it won't prevent another viewer from viewing 501 unique images. So are you going to gain anything from the server-side cache anyway?