With is a localization construct, similar to Block in a number of ways. It specifies specific values for localized parameters.
Assuming restricts parameters to restricted: e.g. Reals, Regions, etc...
And various functions, e.g., Integrate, FullSimplify, ... algorithmically behave in particular ways depending on the assumptions specified.
They are different beasts entierly.