Con un display: inline; definido para #caja, todo se resolvió y el margin-left ya tiene su comportamiento esperado.