Not familliar with seL4 workflow, so don't take everything I say as the way to do it.
For repo, probably best bet are the Android source pages:
What you should remember about repo is that it is just a wrapper for git.
So anything you do in repo can be made by repeatedly issuing git commands for each git repository.
The general workflow in repo is starting off from say 'master' branch (which is the same as saying: "all git repositories are on master branch"). Then create a new repo branch say 'new_feature' in one or more projects (project = repo terminology for git repository).
A repo branch is just a branch which has the same name in all relevant git repositories.
Now you work on the new_features branch in each project (git reposotory) as you would do with regular git, you can probably even set up different push URL (say pushing to your own forked repositories - might have to tinker with .manifest file or similar).
When you want to update from master, "repo sync" will update the master branch and all upstream branches for all projects (might do rebases which is really annoying), but will not affect the projects on which you are working locally (branch 'new_feature')
If the local branch is not tracking a branch in the remote repository, then no synchronization will occur for the project.
One thing I've noticed while doing Android development is that repo is only really useful for doing sync, diff, status and forall.
Unless you are working with a lot of projects simultaneously, everything else (push rebase, etc) can be done manually in each git repository - but that is just my own opinion.
Hope this helps!