I agree with @DeFrenZ. There's still certain amount of magic, like how it can distinguish between multiple States during init (I suspect it's the init order, but I wouldn't want to rely on that).
After thinking for a while, I believe the best way is to just call the synthesized init, and not even mutate the state during this time.
PS
If you don't know the initial value, you can just leave it to the parents to supply it:
fileprivate struct MyWidget: View {
@State var value: Int // No need for value right now
...
}