Amalgamation what the SQLite maintainers recommend, and it's the most portable, etc. So this is the right choice.
Also, given the way SQLite is maintained (backward compatibility is fairly strict, they jump through hoops in their API to make it so), bundling is fine, and is intended by the designers. I agree it can be a slight hassle to update to the current amalgamation, run tests, and then release on CPAN, but that cycle can be made pretty short. Having the *ability* to use installed libraries... say on a system where the installed libs are newer/threadsafe/being tested, whatever, is a useful feature. But, in my experience, it was only needed because the DBD::Sqlite *wasn't* being well maintained. If it had been, I would have just used the new DBD::Sqlite and never worried about it. The DBD::SQlite should use a) already installed libs if *available and compatible* b) *bundled* amalgamation, which is guaranteed to be available and compatible That's it.