Re: SLC MLC TLC
Each block in a MLC die can be erased as desired (MLC or SLC) by the firmware on board. Same goes for TLC. It usually makes sense to permanently partition the blocks in such a way that the important stuff (or stuff which is going to be re-written many, many times) is stored in SLC. Whilst it would make more sense to keep this partitioning static, as you say there's nothing in the physics to prevent you doing it dynamically. It's just FAR more difficult to keep track of wear-levelling, etc in the dynamic case, with very little benefit to be gained in real-world use-cases.