Indeed data is never lost.
Even if you change an Attribute data type, the convertion is only done by the platform if possible. Otherwise, publication will not be allowed and you must either convert data using the database client tools, or simply create a new attribute with the desired data type and do some logic to perform the convertion in your app.
Regarding entities, you can rename them at will and they will still map to the original database table. As for attributes, if you rename them, the platform will create a new attribute in the database table and leave the old one untoutched with all its data (but dropping any existing integrity contrains).
Hope this clarifies everything. Cheers,