Would it be possible for fire to have multiple variants for something like a special ice block that could only be melted by a higher level version of fire?
Yes, you can code the ice blocks with custom entities, and new types of fire with enemies or custom entities.