I tried it, did not work, It seems that the code used to manually take and compile the parent class, And then compile the class we are on. This does not work as the 
Right now even if I manually take the parent class and compile it still won't work.
scenario 1:
when manually taking the parent class and trying to compile it, it would then compile its child and fail there (presumably because the child compiled in parallel to the parent causing the Method or Property undefined)
scenario 2: 
when trying to compile the class with the "ckr" flag, it would tell us the class was compiled successfully but in reality the class won't be compiled as we go inside it in studio we see it required compilation still.

Hey after further testing I encountered a problem.

When trying to run a routine from within a method using the terminal, it would execute the argument in our terminal scope and not in that classMethod context, For example:

ClassMethod test()
{
    s arg = "asd"
    s routine = "say^hello(arg)"
}


then in terminal: 

s arg = "ddd"
d ##class(something).test()


output:

ddd

and NOT asd as you would expect...
any help on this topic?

Thx for the replay, 
1. the problem with checking the header is that it can be toyed with, if someone changes header to say 1kb and sends 4mbs i will check header and let it pass...

I will check about 2 and 3, thx!

EDIT: checked about 2 - something like size property doesn't exist, the maximum you can do with a request is iterate through all the data inside and get its total *length of characters* which is still far from the request size in mbs