Does adding a default value into a column finally work without locking up an entire table now at least?
Like most ALTER TABLE subcommands, you need an exclusive lock on the table while the catalog is updated. But no table scan or rewrite is required, so that lock is sub-second and can usually be done without disrupting a live application.
Yes, it has for a few years :) There's almost always non-locking ways to migrate things with Postgres now