"before I invoke its get method, its value is shown"   Yes, that's is obviously the case, but I fail to find this behaviour described in the documentation. However, I think it's useful.
IIRC: The dependent property is calculated "in the background" when displayed in a tooltip or the Variable Editor. Several releases back, the dependent property was calculated by an explicit call to the get-function when required for a tooltip. That caused a lot of pain when there was a bug in the get-function.
Try the following steps
>> cdp = class_dep_prop();
- set a breakpoint in the foo-method
 
- point at this to see a tooltip. Note that a value is displayed for x, but not for y.
 - replace b=(1:3); by  b=(1:2); and repeat the steps. Now, a value is displayed for y.
 
This behaviour is better than the old one, which throw an error in the get-function. (Maybe, it would be even better to show something like y=-error- in the tooltip when there is a bug in the get-function.)
where
classdef class_dep_prop < handle
      properties
          x = 1;
      end
      properties ( Dependent = true )
          y
      end
        methods
            function  val = get.y( this )
                a = (1:2);
                b = (1:3);
                c = a .* b;
                val = c * this.x;
            end
            function  val = foo( this ) 
                val = 17;
            end
        end
  end