We have (and do) use it successfully in Functions. Though we reflected the Db object instead of usig context
Epicor.Functions.IFunctionHost host = (Epicor.Functions.IFunctionHost)this.GetType().BaseType.BaseType.GetField("host", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(this);
var Dbl = (Erp.ErpContext)host.GetIceContext();
Erp.Internal.Lib.DeferredUpdate libDeferredUpdate = new Erp.Internal.Lib.DeferredUpdate(Dbl);
libDeferredUpdate.UpdPQDemand();