compiler's inconsistency?

I have IDE 1.6.5

When making some changes to my project and compiling I have the below warnings

In file included from integrated2_07.ino:61:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM/EEPROM.h:43:30: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     operator const uint8_t() const       { return **this; }
                              ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM/EEPROM.h:92:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     operator const int() const          { return index; }
                          ^
In file included from C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:7:0:
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp: In member function 'uint16_t DNSClient::ProcessResponse(uint16_t, IPAddress&)':
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:285:58: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     uint16_t header_flags = htons(*((uint16_t*)&header[2]));
                                                          ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/util.h:4:22: note: in definition of macro 'htons'
 #define htons(x) ( ((x)<< 8 & 0xFF00) | \
                      ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:285:58: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     uint16_t header_flags = htons(*((uint16_t*)&header[2]));
                                                          ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/util.h:5:22: note: in definition of macro 'htons'
                    ((x)>> 8 & 0x00FF) )
                      ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:287:50: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     if ( ( iRequestId != (*((uint16_t*)&header[0])) ) ||
                                                  ^
In file included from C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:7:0:
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:304:57: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     uint16_t answerCount = htons(*((uint16_t*)&header[6]));
                                                         ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/util.h:4:22: note: in definition of macro 'htons'
 #define htons(x) ( ((x)<< 8 & 0xFF00) | \
                      ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:304:57: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     uint16_t answerCount = htons(*((uint16_t*)&header[6]));
                                                         ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/util.h:5:22: note: in definition of macro 'htons'
                    ((x)>> 8 & 0x00FF) )
                      ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:313:58: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     for (uint16_t i =0; i < htons(*((uint16_t*)&header[4])); i++)
                                                          ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/util.h:4:22: note: in definition of macro 'htons'
 #define htons(x) ( ((x)<< 8 & 0xFF00) | \
                      ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\Dns.cpp:313:58: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
     for (uint16_t i =0; i < htons(*((uint16_t*)&header[4])); i++)
                                                          ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility/util.h:5:22: note: in definition of macro 'htons'
                    ((x)>> 8 & 0x00FF) )
                      ^
C:\Program Files (x86)\Arduino\libraries\Ethernet\src\utility\socket.cpp:365:6: warning: unused parameter 's' [-Wunused-parameter]
 void flush(SOCKET s) {
      ^

Then, if i recompile (control R again) I "only" have the 1st two warnings [/color]

In file included from integrated2_07.ino:61:0:
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM/EEPROM.h:43:30: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     operator const uint8_t() const       { return **this; }
                              ^
C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM/EEPROM.h:92:26: warning: type qualifiers ignored on function return type [-Wignored-qualifiers]
     operator const int() const          { return index; }
                          ^

I am only asking why doesn't the compiler output always the same messages?

Because it doesn't recompile all the sources, I guess.