¿Por qué un elemento en línea acepta ancho y alto cuando flota?

Ahora que tengo un elemento span, le doy ancho y alto, por ejemplo 500 px, lo conozco como elemento en línea, por lo que no acepta ancho y alto, pero ¿por qué se aplica cuando lo floto?

span.first {
  width: 500px;
  height: 500px;
  border: 1px solid #000;
  float: right;
}

span.second {
  width: 500px;
  height: 500px;
  border: 1px solid #000;
}
<span class="first">with float</span>
<span class="second">without float</span>

https://codepen.io/kemozzz/pen/KvVrXj

Respuestas a la pregunta(2)

Su respuesta a la pregunta