Q:

Does declaring enum value as ~0 generates a flag of one's (bitwise)?

enum Test
{
    X = 1,
    Y = 1 << 1,
    Z = 1 << 2,
    All = ~0
}

Will Test.All be generated as a flag of bitwise one's, no matter how many values will be added to Test at a later points in time? For example, if new values are added:
enum Test
{
    X = 1,
    Y = 1 << 1,
    Z = 1 << 2,
    W = 1 << 3,
    WAndZ = W | Z,
    All = ~0
}

Is it guaranteed that Test.All will always include all the other values?

A:

Yes, bitwise, this enum value will include all other values. This means tests like this:
(Test.All & Test.X) == Test.X

will evaluate to true to all members of this enum (even if integer value of X is 0).
Likewise, you can (and should) have a default value for 0, which will evaluate to false when matched against other flags:
enum Test
{
    None = 0,     // no flags
    X = 1,
    Y = 2,
    Z = 4,
    ...
    All = ~0      // all flags
}

This means All will include all flags, and None will include no flags:
Debug.Assert((Test.All & Test.None) == Test.None);
Debug.Assert((Test.All & Test.X) == Test.X);
Debug.Assert((Test.All & Test.All) == Test.All);

Debug.Assert((Test.None & Test.None) == Test.None);
Debug.Assert((Test.None & Test.X) == Test.None);
Debug.Assert((Test.None & Test.All) == Test.None);

