WMP is uncompiled working files, only WED can open that, engine does not use these files.
WMBs are the compiled versions of that WMP files engine can load these files with level_load. So if you want to use WED you need WMBs.
But, wait! You do not have to use the WED. or WMPs and WMBs.If you do not use blocks and if you are going to procedurally create your levels at runtime you do not need WED. Just load an empty level: level_load(NULL);
Then create your terrains(.hmp) and models(.mdl) with ent_create. Nothing needs to be compiled. You can also save these levels to a text/xml/json etc. file and write your own loading function(using ent_creates etc..)
You can also create wmbs with ent_create.
For the terrain i do not think it will make much difference but if it's really huge, you may need to use separate tiles.(there is a limit for terrain vertex count). Try and check the performance yourself.