Using TEXT or even MEDIUMTEXT for all text columns in a MySQL table?
Drawbacks of what you propose:


Temp tables (for complex SELECTs) cannot use MEMORY, which is faster than the fallback of MyISAM.
Storing numeric 'values' VARCHAR makes it difficult or slow to test for.
Key-value schema leads to ugly JOINs.  And they are inefficient.
In InnoDB, depending on the ROW_FORMAT, TEXT fields may be stored in other blocks.  This may slow you down (INSERTs and SELECTs) due to extra disk hits.


Yes/no -- the ALTER TABLE to change the width of a VARCHAR may be costly.  In some very recent version, increasing the size of a VARCHAR became virtually free.  (There may be more caveats.)