In general, the generator weighs and costs more than the engine for the same power level. In the linear design, the generator is used inefficiently because the magnets are moving in a sinusoid instead of a constant velocity past the windings, and the maximum speed of a piston is lower than the optimum speed of a generator. So you'll need more magnet & wire for the same power level, increasing total weight and cost.
it most possibly will. The reason is that traditional design was built for actual mechanical spinning of the wheels with all the trade-offs coming from it. Generating engine has completely different requirements which would drive trade-offs and optimizations. For example, you can run free-piston at much higher rpm, thus mitigating the inefficiency of magnet/wire usage. Higher rpm would lead to less weight for the same power. The pressure/volume curve can also be optimized and shaped instead of the sinusoid forced by the rotating movement. Etc...
http://www.google.com/patents/US2900592
AFAIK they were briefly used in very limited amounts by the Germans in highly-space-constrained applications like missiles, but otherwise they were quite inefficient.
EDITED to add: they seem to have run out of funding without producing anything commercializable: http://newenergyandfuel.com/http:/newenergyandfuel/com/2013/...
http://jalopnik.com/5210372/bill-gates-files-patents-for-ele...