Jake - your forgetting about the other keyword dectection algorithm.
Functional decomposition involves breaking your application down into a series of buisness processes and writing corresponding WinRunner functions. Some examples -
login(in username, in password)
create_user(in name, in loginID, in password, in email)
create_order(in productID, in quantity)
This is a tried and true method of increasing code re-use and decreasing maintainance.
Keyword driven frameworks are an attempt to make your functions available to a non-WinRunner user, by calling the functions according to "keywords" in an Excell spreadsheet. This isn't something I reccomend as it quadruples the amount of code, and creates maintainance nightmares.