Functions with assign statements

In reply to SparkyNZ:

Note that the always_comb feature of SystemVerilog addresses this issue by expanding (or inlining) the function call to include the sensitivity from statements inside the function.

always_comb chipSelect = chipSelectFunc();

This gives you the behavior you are expecting.