Manipulate being based on top-level code can be tricky sometimes. It seems that we can't use Dynamic around option values e.g. Paneled -> Dynamic[frmd].
Here is a method:
Dynamic[Manipulate[x, {x, 0, 1}, {{frmd, False}, {True, False}},
Paneled -> frmd, LocalizeVariables -> False]]
The disadvantage here is that the entire Manipulate is updated when the checkbox is used. We can use our own frames so that we don't rely on the Paneled option:
Framed[
Manipulate[
Framed[x, FrameStyle -> Dynamic[If[frameInner, Gray, None]],
ImageSize -> {Scaled[1], Automatic}],
{x, 0, 1},
{{frameInner, False}, {True, False}},
{{frameOuter, False}, {True, False}},
Paneled -> False, LocalizeVariables -> False
],
FrameStyle -> Dynamic[If[frameOuter, Gray, None]]
]
This one will update only the frames and not the entire Manipulate content.