You can make formant synthesis very easy with the ffb~ object. On this forum there are several examples of how people have done this.
Personally I try to use native externals as much as possible. I have been working with max for more than 14 years and in that time a lot of people have abandoned their home-made externals. And if you really depend on them you are f@#ked. Some externals have been there for ages like fiddle~ which I can't live without. Just make sure you use externals that stay supported.
FOF synthesis is not the same as a formant filter (e.g. using ffb~). [edit - at least in the sense of the literature on FOF - it can probably achieve the same effect]
I think the attitude of only using native objects in many cases is just making things hard for yourself. For instance FOF is hard to do because you need sample accurate, overlapping grains (it is probably possible though, in some backwards way). Max can become very frustrating when you need to trigger things at sample rate, and knowing the sdk and/or using some 3rd party objects can save you lots of time.
FOF and formant synthesis are indeed different. But I only revert to formant synthesis ;-) FOF is more like granular synthesis which is also possible with max. But its a bit more work.
And, I totally agree that there are a lot of 3rd party objects out there that are great and live savers. But I think (thats the max teacher in me) you can do a lot with the native objects. It's easy to grab a 3rd party object but you do not learn anything from that. Still, I do tell my students they shouldn't invent the wheel again and just grab whats out there but they need to know the basics of what they are grabbing.
I hope the people at Cycling '74 think of something which let you do sample accurate processing. I love to do gendy stuff in max but no luck yet.
On a simple and practical note, I used the Wikipedia article on formants (http://en.wikipedia.org/wiki/Formant) about a year ago to build a very basic patch that was able to do this with only three ffb~ filters and lists of values for each vowel in a coll.
I wasn't trying for speech (just vowel sounds) so it wasn't and didn't need to be perfect, but it worked and ended up sounding startlingly like throat singing.