Boolean expression will always have the same value.

function Update () {
    if (Input.GetKeyDown(KeyCode.LeftArrow)) {
        var cam : Transform = Camera.main.transform;
        var cameraRelativeRight : Vector3 = cam.TransformDirection (1, 0, 0);
        transform.position += cameraRelativeRight * -1;
    }
    else if (Input.GetKeyDown(KeyCode.RightArrow)) {
          cam = Camera.main.transform;
        cameraRelativeRight = cam.TransformDirection (1, 0, 0);
        transform.position += cameraRelativeRight * 1;       
    }
    else if (Input.GetKeyDown(KeyCode.DownArrow)) {
        cam = Camera.main.transform;
        var cameraRelativeForward : Vector3 = cam.TransformDirection (0, 0, 1);
        transform.position += cameraRelativeForward * -1;       
    }
    else if (Input.GetKeyDown(KeyCode.UpArrow)) {
        cam = Camera.main.transform;
        cameraRelativeForward = cam.TransformDirection (0, 0, 1);
        transform.position += cameraRelativeForward * 1;       
    }
    else if (Input.GetKeyDown(KeyCode.Space) || Time.time - lastFall >= 1) {
        transform.position += new Vector3(0, -1, 0);
        if (!isValidPosition){
            Debug.Log("you fucked up");
            FindObjectOfType(BlockSpawn).BlockSpawn();
            // Disable script
            enabled = false;
        }
    
        lastFall = Time.time;
    }
}
function isValidPosition () : boolean{
    if (transform.position.y < 0.1)
        return false;
    else if (transform.position.x > 5 )
        return false;
    else if ( transform.position.x < -5)
        return false;
    else if (transform.position.z > 5 )
        return false;
    else if (transform.position.z < -5)
        return false;
    else
        return true;
}

The log says that ‘function isValidPosition’ has always the same value.
I dont know why…

You need to call the method properly with
if ( !isValidPosition() ){