If you write your behavior stuff in .DLLs then you dont have to recompile the whole game ....
Of course whether its classes or equivalent one way or another you have to organize your
behavior logic somehow (even if its nebulous blobs that get called thru standardized passed data interfacing)
I went the way with DLL with native C/C++ on some projects (LUA and other scriting is 10X or more times slower than natively compiled
code but that may not matter for your project, but did very much for mine)
I looked at TinyC ( http://bellard.org/tcc/ ) as an imbedded compiler/scripting type usage but later just decided to use the DLL with
regular full strength C/C++ compilers instead.
The scripting languages can sometimes be easier to 'code' but I found that most of the behavior stuff I was doing was mostly subroutine calls
and standardized data inside the AI framework and relatively simple logic that even alot of the fancier features of most scripting languages wasnt used anyway.