a) is there any good solid documentation (other than the SQL tutorials) about writing database applications in Lazarus?
You can use similar articles that talk about it for Delphi, mostly the same applies.
b) I keep seeing things about Zeos - is that something that I should be favoring for pascal db programming?
No, it's just an option. However, it's also Delphi compatible so if you want to write a project that compiles for both, Zeos is a good option.
c) Any good information anywhere on building a solid data access layer or is that unnecessary w ith the help of the datamodule?
If that's your thing, there are several OPF that uses published properties. However, I think the classic manual mapping, just wrapped in a subroutine is a much better option. You have complete control over the query and you can choose what and how to map efficiently. The code that calls it still has no idea what happens underneath. Data module doesn't assist much, it's just a container that helps with the component lifecycle but that's it.