I don't think you can re-style a SVG with CSS if you embed it with IMG. CSS styling has to be inline with the SVG, so you can embed it directly, or you can change CSS with JS.
The problem is that, until <svg use> is standardized and supported, the only way to style svg elements is if you include them in your markup (or use something like Iconic's SVG Injector).
There's a tradeoff between inlining (or rather, including them server-side) and calling them as <img>, background-image, or fonts. The size, http requests, caching , and styling all play a role.
You can change the color and size without having to change or edit an image. Plus things like pixelation dont happen with fonts but you could use canvas in a similar way. I've seen some cool logos done with canvas.
Depending on the complexity I imagine fonts would also be smaller than corresponding bitmaps although I never actually checked.