Esse Bug está me deixando Louco, Salvando FLOAT na EEPROM

Isto não é verdade... Basta ver o código da biblioteca EEPROM para ver que a mesma guarda o valor do float byte a byte. O mesmo é simples de fazer utilizando uniões.

union Float_8 {
   float float_value; 
   unsigned char array_value[4]; 
};

//... 

union Float_8 dado_EEPROM, lido_EEPROM; 
dado_EEPROM.float_value = 3.14; 

for (unsigned char i = 0; i < 4 ; i++) {
   EEPROM.write(10+i, dado_EEPROM.array_value[i]); 
}; 


//... 

//ler da EEPROM
for (unsigned char i = 0; i < 4 ; i++) {
   EEPROM.read(10+i, lido_EEPROM.array_value[i]); 
}; 

Serial.println(lido_EEPROM.float_value); 

Sim, não é directo e a put e get faz o mesmo com passos possíveis em C++, mas o mecanismo é o mesmo. Nota que é também possível de fazer exactamente o mesmo sem uniões e com bit shift mais máscaras.

Serve apenas para elucidar quem levantou a questão original que existe mais mundo além do Arduino.