Nondestructive editing? Sounds great! Proceed with caution though.
Smart Objects pasted from Illustrator aren’t drawn with dithered gradients, and can have anti-aliasing issues. Vector layers (solid colour and gradient layers with a vector mask), can be dithered and have better anti-aliasing, so they’re usually preferable to Smart Objects.
However, Smart Objects can contain multiple colour fills, strokes and things that aren’t possible with Photoshop’s vector layers.
Smart Objects created in Photoshop are rendered at their native size. This means that if you scale a Smart Object, it will be bitmap scaled up or down, even if your Smart Object was built from vector shapes initially. Bitmap scaling means interpolation and blurry edges, textures and other artefacts. Generally that’s not what you want.
However, if you want to use a bitmap texture — like a photo — a Smart Object can be a great way to implement it, just make sure you’re also using a vector mask or vector layer as the shape’s edge (shown below). This will mean the texture gets bitmap scaled, but the edge will be redrawn at size as a vector.
Also, if you’re planning on scaling the document up for the Retina display, then you’ll want to create your Smart Object texture at exactly double the size and have it scaled to 50% in your non-Retina document. This will give you pixel perfect representation at the 2× size, and bitmap scaled texture at the 1× size, with a crisp vector edge for both (assuming you work at 1× then scale up).
Smart Objects do have a significant advantage though. Filters can be nondestructively applied, allowing for some powerful results that can be edited or reordered at any time. Smart Objects are the only way to apply nondestructive filters (Smart Filters) in Photoshop.
Smart Objects can be used to apply multiple layer styles to an object in a recursive fashion, allowing 5 drop shadows, 17 inner glows, or any combination your heart desires and patience can endure. Just apply some Layer Styles, then convert the layer to a Smart Object, which will allow more Layer Styles to be applied. Be careful though — each Smart Object level will be rendered at its native size, so scaling will cause issues with all layer styles except those applied to the top level object.
Yes, sometimes, but only when a better method doesn’t exist. Choose wisely.